Я использую плагин FineUploader для загрузки некоторых файлов на сервер. По какой-то причине массив Request.Files пуст, как при каждых 10 из 100 загрузок страницы. Иногда это ноль. После нажатия Ctrl + F5 все работает правильно. Я знаю, что FineUploader больше не поддерживается. Но это, вероятно, не связано с FineUploader.
Код серверной стороны:
var request = controllerContext.RequestContext.HttpContext.Request;
var formUpload = request.Files.Count > 0;
// find filename
var xFileName = request.Headers["X-File-Name"];
var qqFile = request["qqfile"];
var formFilename = formUpload ? request.Files[0].FileName : null;
var upload = new FineUpload
{
Filename = xFileName ?? qqFile ?? formFilename,
InputStream = formUpload ? request.Files[0].InputStream : request.InputStream
};
return upload;
Клиентская сторона JavaScript код:
<script>
var uploader = new qq.FineUploader({
debug: true,
multiple: false,
element: document.getElementById('fine-uploader'),
request: {
endpoint: '/SystemDefinitions/ProcessImportFile',
params: { "operationType": $("#operationType").val() }
},
deleteFile: {
enabled: true,
endpoint: '/SystemDefinitions/DeleteFile'
},
retry: {
enableAuto: false
},
failedUploadTextDisplay: {
mode: 'custom', // Display error responses from the server.
responseProperty: 'error' // Default is 'error', change this to match the
// property that contains the error message from
// your server
},
callbacks: {
onComplete: function (id, name, xhr) {
if (xhr.errorMessage !== "") {
showResult("Error", xhr.errorMessage);
return false;
}
},
onSubmit: function (id, fileName) {
var newParams = {
operationType: $("#operationType option:selected").val()
},
finalParams = defaultParams;
qq.extend(finalParams, newParams);
this.setParams(finalParams);
}
}
});
</script>