Jquery 上传文件,它有更多的大小,抛出使用ajax和MVC内存不足异常
我正在尝试使用ajax和MVC上传一个文件,这段代码对于小文件来说运行良好,但如果大小超过,就会抛出内存不足异常 我的JQuery代码Jquery 上传文件,它有更多的大小,抛出使用ajax和MVC内存不足异常,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我正在尝试使用ajax和MVC上传一个文件,这段代码对于小文件来说运行良好,但如果大小超过,就会抛出内存不足异常 我的JQuery代码 $("#btn-upload-package").click(function (e) { e.preventDefault(); if ($("#frm-single-migrate").validationEngine("validate") == true) { var fileUpload = $("#frm_file_upload")
$("#btn-upload-package").click(function (e) {
e.preventDefault();
if ($("#frm-single-migrate").validationEngine("validate") == true) {
var fileUpload = $("#frm_file_upload").get(0);
var files = fileUpload.files;
var fileData = new FormData();
fileData.append(files[0].name, files[0]);
fileData.append('SourceName', $('#txt_source_package').val());
$.ajax({
type: "POST",
url: '@Url.Action("UploadSourceAndVerify", "Home")',
data: fileData,
async:true,
contentType: false,
processData: false,
cache: false,
success: function (data) {
if (data.IsError) {
ShowAlert('Error..!', data.Error);
}
else {
ShowAlert('Success', "File has been uploaded successfully");
}
},
error: function (data) {
alert("Please contact your administrator");
}
});
}
});
MVC代码如下所示:
public ActionResult UploadSourceAndVerify()
{
string SourcePackageName = Request.Form["SourceName"];
HttpPostedFileBase file = Request.Files[0];
string fname = Path.Combine(Server.MapPath("~/Uploads/"), file.FileName);
file.SaveAs(fname);
return Json(JsonViewModel);
}
当我试图获取Request.Files[0]时,它将内存抛出异常
请让我知道有什么方法可以上传大文件,我想我已经在配置文件中做了所有正确的事情尝试更新你的
web.config
文件并增加允许的最大文件大小,如下所示
<configuration>
<system.web>
<!-- This will handle requests up to 1024MB (1GB) -->
<httpRuntime maxRequestLength="1048576" timeout="3600" />
</system.web>
</configuration>
<!-- IIS Specific Targeting (noted by the system.webServer section) -->
<system.webServer>
<security>
<requestFiltering>
<!-- This will handle requests up to 1024MB (1GB) -->
<requestLimits maxAllowedContentLength="1048576000" />
</requestFiltering>
</security>
</system.webServer>
但也有可能是目标服务器没有足够的资源来处理这个大文件,并且内存不足。如果是这种情况,那么web.config将无法帮助您,因为计算机太弱,无法处理大型文件。也许你需要买更多的内存 尝试更新
web.config
文件,并增加允许的最大文件大小,如下所示
<configuration>
<system.web>
<!-- This will handle requests up to 1024MB (1GB) -->
<httpRuntime maxRequestLength="1048576" timeout="3600" />
</system.web>
</configuration>
<!-- IIS Specific Targeting (noted by the system.webServer section) -->
<system.webServer>
<security>
<requestFiltering>
<!-- This will handle requests up to 1024MB (1GB) -->
<requestLimits maxAllowedContentLength="1048576000" />
</requestFiltering>
</security>
</system.webServer>
但也有可能是目标服务器没有足够的资源来处理这个大文件,并且内存不足。如果是这种情况,那么web.config将无法帮助您,因为计算机太弱,无法处理大型文件。也许你需要买更多的内存 正如@David Votrubec所说的,这是机器的问题,内存不足。谢谢大家给我们的宝贵建议。告诉@David Votrubec,这是机器的问题,内存不足。感谢大家提供的有用建议文件有多大?@Rorymcrossan文件大小为513MB,但将来可能会达到2GB。请不要在屏幕上截图显示您的代码。将实际的代码放入问题中,文件有多大?@rorymcrossan它是513MB,但将来可能会达到2GB。请不要将您的代码截屏。将实际代码放入问题中我仍然面临同样的问题,我的机器中有4GB RAM:(,谢谢你的建议,请让我知道任何其他可能性如果目标机器与你正在开发的机器相同,4GB内存可能不够。开发IDE可能消耗1GB左右,操作系统本身可能相同,然后你有一堆不同的程序、web浏览器等。文件处理需要相同的内存RAM也是。在任务管理器中上传后检查+期间的内存消耗,或者在IDEOk中进行一些评测谢谢,我已经检查过了,你说得对,机器几乎使用了80%的内存,我将尝试升级机器。我将面临同样的问题,我的机器中有4GB RAM:(,谢谢你的建议,请让我知道任何其他可能性如果目标机器与你正在开发的机器相同,4GB内存可能不够。开发IDE可能消耗1GB左右,操作系统本身可能相同,然后你有一堆不同的程序、web浏览器等。文件处理需要相同的内存RAM也是。在任务管理器中上传后检查+期间的内存消耗,或者在IDEOk中进行一些评测。谢谢,我已经检查过了,你是对的,机器几乎使用了80%的内存,我将尝试升级机器