Request.Files приходит пустым по случаю - PullRequest
0 голосов
/ 15 февраля 2020

Я использую плагин 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>
...