I am using FineUploader plug-in to upload some files to the server. For some reason, Request.Files array comes empty like in every 10 in 100 page loads. It's null sometimes. After hit Ctrl+F5, everything works properly. I know that FineUploader is no longer supported. But it's probably not related with FineUploader.
ServerSide Code:
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;
Client Side JavaScript code:
<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>