ASP.NET MVC上传附件大小限制的问题

        $(document).ready(function () {
            $('#ShangchuanHeTong,#ShangchuanGaiZhangHeTong').fileupload({
                type: 'POST',
                url: '@Url.Action("Upload")',
                dataType: 'json',
                autoUpload: true,
                minFileSize: 1,
                maxFileSize: 1024 * 1024 * 50,
                add: function (e, data) {
                    var guanLianHao = '@Model.Shenpiliuchengxinxi.Guanlianhao';
                    //console.log(guanLianHao);
                    var Leixing = $(this).data("leixing");
                    //console.log(Leixing);
                    data.formData = { guanLianHao: guanLianHao, Leixing: Leixing };
                    data.submit();
                },
                done: function (e, data) {
                    if (data.result.isSucced === true) {
                        var html = '<span class="fujian-item">' +
                            '<a  href ="../File/Download?Id=' + data.result.fileId + '">' + data.result.fileName + '</a>' +
                            '<a class="fujian-item-del" data-fujianId="' + data.result.fileId + '" data-guanlianhao="' + data.result.guanlianhao + '" href="javascript:;">' +
                            '删 除' +
                            '</a>' +
                            ';' +
                            '</span >';
                        //$("#wenjian1 .fujian-item").empty().remove();//删除
                        $(this).after(html);//覆盖

                    }
                    else {
                        alert(data.result.errorMessage)
                    }
                },
                fail: function (e, data) {
                    var fileName = data.files[0].name;
                    console.log(e);
                    alert(fileName + "上传失败!")
                },
                always: function (e, data) {
                },
            });
    [HttpPost]
        public JsonResult Upload(string guanLianHao, int Leixing)
        {
            //throw new Exception("不存在此附件");
            HttpPostedFileBase file = Request.Files?[0];
            string fileName = file?.FileName;
            string errorMessage = "";
            int zuiDaShangChuanFuJian = 1024 * 1024 * 20;// 100MB

            try
            {
                if (file == null || file.ContentLength <= 0)
                    throw new Exception("请上传文件");

                if (file.ContentLength > zuiDaShangChuanFuJian)
                {
                    throw new Exception("文件大小不能超过" + zuiDaShangChuanFuJian / (1024 * 1024) + "MB");
                }

                var extension = Path.GetExtension(file.FileName);
                //if (string.IsNullOrWhiteSpace(extension) || (!WebAppSetting.SalesOrderFuJianShenHe.Contains(extension.ToLower())))
                //    throw new Exception("不支持上传此扩展名的文件(仅支持PDF)");

                /截取.并获取.后的文件格式,格式转为小写
                var suffix = file.FileName.Split('.')[1];
                if (suffix.ToLower() == "jpg" || suffix.ToLower() == "jpeg" || suffix.ToLower() == "gif" || suffix.ToLower() == "png")
                {
                    throw new Exception("请不要上传图片,上传Excel/Word/Pdf");
                }

                string baoCunMing = Guid.NewGuid().ToString("N") + extension;//生成一个随机文件名保存到本地并保存文件
                string xiangDuiBaoCunDir = "~/Upload/WenJian/" + DateTime.Now.ToString("yyyyMM");
                string jueDuiBaoCunDir = Server.MapPath(xiangDuiBaoCunDir);

                if (!Directory.Exists(jueDuiBaoCunDir))
                    Directory.CreateDirectory(jueDuiBaoCunDir);
                string jueDuiBaoCunDiZhi = jueDuiBaoCunDir + "/" + baoCunMing;
                file.SaveAs(jueDuiBaoCunDiZhi);

                tberp_salesorderfujian model = new tberp_salesorderfujian();
                model.Guanlianhao = guanLianHao;
                model.Wenjianming = fileName;
                model.Baocunlujing = xiangDuiBaoCunDir + "/" + baoCunMing;
                model.Shangchuanren = OASession.user.Zhanghao;
                model.Shangchuanshijian = DateTime.Now;
                model.Leixing = Leixing;
                int fileId = _fuJianDAL.Add(model);

                return Json(new { isSucced = true, fileId = fileId, fileName = fileName, errorMessage = "" });

            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
            }

            return Json(new { isSucced = false, errorMessage = string.Format("{0} 附件上传失败!  {1}", fileName, errorMessage) });
        }

上面的代码并无问题,但是上传附件时报错

报错:C#上传文件过大导致 报错  [HTTP/1.1 500 Internal Server Error 30ms]

解决办法:

在ASP.NET MVC中,默认情况下,上传的附件大小限制为4MB(约4096KB)。这个限制是由`<httpRuntime>`配置节的`maxRequestLength`属性控制的。这个属性的默认值为4096KB,可以在web.config文件中进行修改。

要更改上传附件大小的限制,请按照以下步骤操作:

1. 打开您的项目中的web.config文件。

2. 在`<system.web>`配置节中,查找或添加`<httpRuntime>`元素。如果已经存在,请确保没有被注释掉。

3. 修改`maxRequestLength`属性的值。这个属性的值是以KB为单位的。例如,要将上传附件的大小限制增加到10MB,您可以将`maxRequestLength`属性的值设置为10240:

```xml

<system.web>

    ...

    <httpRuntime maxRequestLength="10240" ></httpRuntime>

    ...

</system.web>

```

4. 保存web.config文件并重新启动应用程序。

请注意,如果您使用的是其他上传组件或库,则可能需要在组件或库的配置文件中修改附件大小限制。

如图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值