Javascript 对于大型文件,使用FormData的Ajax回调失败
我有一个Javascript 对于大型文件,使用FormData的Ajax回调失败,javascript,ajax,asp.net-mvc,multipartform-data,form-data,Javascript,Ajax,Asp.net Mvc,Multipartform Data,Form Data,我有一个输入文件控件,可以上传任何类型的文件。 因此,我将获取文件并存储在FormData中,并对我的控制器进行ajax调用。 它可以很好地处理图像和小的.mp3文件。 但是当我上传超过5MB的.mp3文件时,它将进入错误功能 我的代码是这样的: document.getElementById('fileUploadControl').onchange = function () { var data = new FormData(); var files =
输入文件
控件,可以上传任何类型的文件。
因此,我将获取文件并存储在FormData
中,并对我的控制器进行ajax调用。
它可以很好地处理图像和小的.mp3文件。
但是当我上传超过5MB的.mp3文件时,它将进入错误功能
我的代码是这样的:
document.getElementById('fileUploadControl').onchange = function () {
var data = new FormData();
var files = $("#fileUploadControl").get(0).files;
for (var i = 0; i < files.length; i++) {
data.append("UploadedImage" + i, files[i]);
}
var ajaxRequest = $.ajax({
url: '/Main/BroadcastFileUpload/',
data: data,
cache: false,
contentType: false,
processData: false,
type: "POST",
success: LoadImages,
error: OnLogoFail
});
ajaxRequest.done(function (xhr, textStatus) {
});
};
<input type="file" multiple id="fileUploadControl" style="width:0px;height:0px" />
document.getElementById('fileUploadControl')。onchange=function(){
var data=new FormData();
var files=$(“#fileUploadControl”).get(0).files;
对于(var i=0;i
有人能帮我吗?这主要是因为服务器端的post限制。出于安全考虑,它们有一个默认大小。如果使用Tomcat,可以在server.xml中配置连接器以设置maxPostSize。大多数情况下,默认值是2MB
它适用于任何使用ASP、JSP或PHP的服务器。配置文件可能会有所不同。document.getElementById('fileUploadControl')。onchange=function(){
var data=new FormData();
var files=$(“#fileUploadControl”).get(0).files;
对于(var i=0;i
是的……我找到了解决方案。多亏了@artm
我已经更改了web.config中的maxRequestLength
<httpRuntime targetFramework="4.5" maxRequestLength="2097151" />
请参阅此问题很可能与上载限制有关。您必须提供一些有关应用程序后端部分的信息。最重要的信息是它的宿主位置(自宿主,某些版本的IIS),因为这会极大地影响默认限制。或者使用app.use(express.bodyParser({limit:'50mb'))
for node.js with express:)正是我想要的,因为我没有意识到这是ASP.Net中的一个设置。我想知道为什么我几乎找不到关于这个限制的任何东西,因为我认为这是XHR的一个限制,在我看到这篇文章之前,我一直在用谷歌搜索错误的东西。你节省了我的时间。非常感谢您的解决方案
<httpRuntime targetFramework="4.5" maxRequestLength="2097151" />