Ввод файла загрузки Krajee Bootstrap не передает uploadExtraData с большими файлами
У меня есть ajax-загрузка с использованием файлового ввода, которая отлично работает даже для загрузок среднего размера (например, 12 Мб работает нормально). Однако при большой загрузке (например, 40 МБ) он либо не передает "лишние" данные формы, либо серверный код (классический 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;
},
});
Я не думаю, что это проблема с настройками сервера, поскольку я уже установил для параметра Максимальный объем тела запрашивающего объекта значение 100 МБ, а для параметра Фильтрация запросов / Изменить параметры функции / Максимально допустимую длину содержимого - 100 МБ.
Когда я загружаю большой файл, все значения uploadExtraData находятся "" в коде на стороне сервера. Однако они перечислены в разделе "данные формы" инспектора сети в Chrome:
1 ответ
Оказалось, что код на стороне сервера использует компонент (загрузка Motobit ASP), который устанавливает максимальный размер формы в 15 МБ.
Dim Form: Set Form = Server.CreateObject("ScriptUtils.ASPForm")
Form.SizeLimit = 12*&H100000