我有一个使用文件输入的 ajax 上传,即使是中等大小的上传也能完美工作(例如:12mb 可以正常工作)。但是,对于大型上传(例如:40mb),它要么不传递“额外”表单数据,要么服务器端代码(经典 ASP)试图在上传完成并传递数据之前处理它们?
js如下:
$('#file').fileinput({
maxFileSize: 45000 ,
maxFileCount: 1,
required: true,
uploadUrl: 'ajax_upload.asp?',
uploadAsync: false,
dropZoneEnabled: false,
uploadExtraData: function (previewId, index) {
//get checkbox values
var strShowTo = ''
showToUserIDs: $("input[name=showToUserIDs]").val(),
$("input[name='showToUserIDs']").each(function () {
if ($(this).is(':checked')) {
thisValue = $(this).val()
strShowTo = strShowTo + thisValue + ',';
}
});
var formData = new FormData();
var formData = {
privateFolder: $('select[name="privateFolder"] option:selected').val(),
title: $("input[name=title]").val(),
sendEmailNotices: $("input[name=sendEmailNotices]").val(),
body: $("input[name=description]").val(),
showToUserIDs: strShowTo
};
return formData;
},
});
我不认为这是服务器设置问题,因为我已经将最大请求实体正文限制设置为 100mb,并将请求过滤/编辑功能设置/最大允许内容长度设置为 100mb。
当我上传一个大文件时,所有uploadExtraData 值在服务器端代码中都是“”。但是,它们被列在 Chrome 网络检查器的“表单数据”部分中: