下载,上传,文件 C# .net

1.将下载的文件的路径,放到form下的隐藏标签,设置value的值为下载文件的路径。
2.将存放下载文件路径的form进行submit()。
3.后台接收文件路径,解码,使用webutility.downloadfile()下载文件 。
   
js:
  function fileNotExists() {
            $.messager.alert("提示", "您下载的文件不存在!", "info");
        }


前台:
<div style="display:none;">
        <iframe name="downloadResponse"></iframe>
        @using (Html.BeginForm("DownPhoto", "OnSite", FormMethod.Post, new { enctype = "multipart/form-data", id = "formdownload", name = "formdownload", target = "downloadResponse" }))
        {
            <input type="hidden" name="hidden_filepath" id="hidden_filepath" value="" />
        }


        @using (Html.BeginForm("DownAccFile", "OnSite", FormMethod.Post, new { enctype = "multipart/form-data", id = "AccDownload", name = "formdownload", target = "downloadResponse" }))
        {
            <input type="hidden" name="filepath" id="filepath" value="" />
        }
    </div>


后台:
 public void DownAccFile()
        {
            string strTemplateFile = Request["filepath"];
            if (String.IsNullOrEmpty(strTemplateFile))
            {
                return;
            }
            strTemplateFile = Server.UrlDecode(strTemplateFile);
            FileInfo fi = new FileInfo(strTemplateFile);
            if (fi.Exists)
            {
                string filename = Path.GetFileName(strTemplateFile);


                WebUtility.DownloadFile(strTemplateFile, filename.Split('-')[1]);
            }
            else//window.parent.
                Response.Write(string.Format("<script type='text/javascript'>window.parent.fileNotExists();</script>"));
        }




上传:
上传文件必须使用form表单,不可使用ajax的异步表单提交(后台获取不到数据)。
<form id="formImport" method="post" enctype="multipart/form-data">
 <input id="infosavecheck" type="file" name="AccFiles" />
 <input type="button" name="btnupload" class="btn-2" value="上传" οnclick="uploadacc()" />
</form>




提交:提交可以直接使用form.submit()。也可以使用jquery-form的ajaxsubmit(),当然需要收入jquery-form的js文件。


下面是上传的js代码,使用的是ajaxsubmit()


            var files = document.getElementById("infosavecheck").files;
            if (files == null || files == undefined || files.length == 0) {
                $.messager.alert("提示", "请先选择要上传的文件", "Info");
                return;
            }
            for (var i = 0; i < files.length; i++) {
                filename = files[i].name
                var ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase() + ",";
                if ("doc,docx,xls,xlsx,".indexOf(ext) < 0) {
                    $.messager.alert('提示', "附件格式不正确,只能是*.doc,*.docx,*.xls,*.xlsx格式中的一种!", 'info');
                    return;
                }
            }


            $('#formImport').ajaxSubmit({
                url: '@Url.Action("SubmitAccFile","OnSite")',
                type: 'post',
                success: function (msg) { //导入完成事件
                    var result = eval("(" + msg + ")");
                    if (result.res == "max") {
                        $.messager.alert("提示", "上传文件大于10M", "Info");
                    } else if (result.res == "ok") {
                        //$('#acccheckresult').val(result.path);
                        var array = result.path.split('|');
                        var str = '';
                        var _t = '';
                        for (var i = 0; i < array.length - 1; i++) {
                            _t = _t + '<div class=\'dvacc\'></div>';
                        }
                        for (var i = 0; i < array.length - 1; i++) {
                            var downurl = decodeURI(array[i]);
//此处是拼接的a标签,用于显示上传后的文件 。供用户下载
                            str = str + '<div class=\'divupacc\'><a href=\'javascript:void(0)\' name=\'filepath\' class=\'aupacc\'  path=\'' + array[i] + '\' οnclick=\'uploadAccFile(this)\'>' + downurl.split('-')[1] + '</a><a href=\'javascript:void(0)\' style="float:right;color:#63BFE0;padding-right:50px;" class=\'delAccfile\' οnclick="removefile(this)">X</a></div>';
                        }


                        //$('#infosavecheckTitle .dvacc').remove();
                        $('#infosavecheckTitle').append(_t);
                        //$('#infosavecheckContent .divupacc').remove();
                        $('#infosavecheckContent').append(str);
                        $('#infosavecheck').val('');
                        $.messager.alert("提示", "上传成功", "Info");
                        //var
                    } else if (result.res == "importbreak") {
                        $.messager.alert("错误", "上传过程中发生错误", "error");
                    } else {
                        $.messager.alert("错误", "发生意外错误,请联系管理员", "error");
                    }
                },
                error: function () {
                    $.messager.alert("错误", "发生意外错误,请联系管理员", "error");
                }
            });


        function uploadAccFile(obj) {
            $('#filepath').val($(obj).attr('path'));
            $('#AccDownload').submit();
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值