Asp.net网站中 js通过input type="file" 上传文件

1. 前台代码

//引用jquery.form.js文件
 <script src="jquery.form.js" type="text/javascript"></script>
 <input type="file" id="flFile"  style="width: 300px;" />
 //ajax代码
 <script type="text/javascript">
 if ($("#flFile").val() != "") {
                    var ID="123456";
                    var submitUrl = "test.ashx?method=UpFile&UpFilePath=flFile&ID=" + ID;
                    $("#forms").ajaxSubmit({
                        beforeSubmit: function (formData, jqForm, options) {
                            //上传中
                        },
                        url: submitUrl,
                        type: "post",
                        dataType: "html",
                        error: function (e) {
                            //上传出现问题
                        },
                        success: function (data, textStatus) {
                            //上传完成
                        }
                    });
                }
</script>

2. 一般处理程序(.ashx)后台代码

private object UpFile(HttpContext context)
        {
            ReportBLL datashowBll = new ReportBLL();    
            string _upfilepath = context.Request.QueryString["UpFilePath"];
            string ID= context.Request["ID"];
            HttpPostedFile _upfile = context.Request.Files[_upfilepath];
            //指定上传路径
            string toFileFullPath = HttpContext.Current.Server.MapPath("../file/");
            string filename = _upfile.FileName.Split('/')[_upfile.FileName.Split('/').Length - 1];   //获取上传文件名称
            string extension = filename.Split('.')[filename.Split('.').Length - 1];  //获取上传文件类型
            string size = _upfile.ContentLength.ToString();//获取上传文件大小 单位为K
            //重新命名保存路径
            string newFileName = toFileFullPath + ID+ "." + extension;
            //判断文件是否存在 存在删除
            if (File.Exists(newFileName))
            {
                File.Delete(newFileName);
            }
            //保存新上传的文件至指定目录
            _upfile.SaveAs(newFileName);

            return "yes";
        }      

3.需要注意

asp.net在默认情况下,超时时间为90秒,如果90秒内该请求还未有完成,就会返回超时的错误。允许上传文件的大小默认为4M。

如何修改asp.net默认的超时时间与默认上传文件大小的限制呢?
方法如下,打开web.config,找到httpRuntime节,修改maxRequestLength与executionTimeout值即可。
设置大小为100M,超时时间10分钟。
代码示例:

<httpRuntime executionTimeout="600" maxRequestLength="100000"  / >

说明:
maxRequestLength:设置最大请求的大小,单位:KB
executionTimeout:设置asp.net超时时间,单位:S(秒)

4.IIS8请求筛选模块被配置为拒绝超过请求内容长度 解除.net上传文件不能超过30M的限制

1.在“Internet Information Services”(IIS)窗口中,展开与您的计算机相对应的节点,然后展开“网站”节点,找到请求筛选,并打开
2.找到隐藏段下面的web.config,右键编辑(或是打开请求筛选-编辑功能设置)
3.修改允许的最大长度字节为你自己需要的,搞定结束。
1M=1048576字节
默认最大允许的字节是30M

菜鸟总结 多存疏漏 感谢指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值