$(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文件并重新启动应用程序。
请注意,如果您使用的是其他上传组件或库,则可能需要在组件或库的配置文件中修改附件大小限制。
如图所示: