Blueimp JQuery прогресс загрузки файла для отдельных файлов

У меня проблема при попытке выяснить, как сообщать о ходе загрузки отдельных файлов при отправке выбора файлов в рамках одного запроса.

Кажется, что данные о событиях прогресса не содержат указателей на конкретный загружаемый файл.

Это код, который я использую:

$('#fileupload')
.fileupload({
    dataType: "json",
    singleFileUploads: false, //to ensure that all files are in one request
    url: "/api/files/upload",
    progressInterval: 100,
    add: function(e, data) {
        $('#filelistholder').removeClass('hide');
        $(data.files)
            .each(function(index) {
                data.context = $('<div />').text(data.files[index].name).appendTo('#filelistholder');
                $('</div><div class="progress progress-striped active"><div class="progress-bar" role="progressbar"  style="width:0%"></div></div>').appendTo(data.context);
            });
        $('#btnUploadAll').click(function() {
                data.submit();
            });
    },
    progress: function(e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        //how to get progress for a current file?
    },
    processalways: { //process does not get called at all...
        function(e, data) {
            console.log('Process ' + data.files[data.index].name + ' ended.');
        }
    }
});

Действие контроллера возвращается следующим образом

 HttpContext.Current.Response.ContentType = "text/plain";
        var result = new Newtonsoft.Json.Linq.JArray();

        foreach (HttpContent content in uploadProvider.Contents)
        {
            var stream = await content.ReadAsStreamAsync();
            repository.SaveFile(stream, content.Headers.ContentDisposition.FileName.Replace("\"",""));
            dynamic fileObj = new JObject();
            fileObj.name = content.Headers.ContentDisposition.FileName.Replace("\"", "");
            result.Add(fileObj);
        }
        HttpContext.Current.Response.Write(JsonConvert.SerializeObject(result));
        HttpContext.Current.Response.StatusCode = 200;
        return this.StatusCode(HttpStatusCode.OK);

Я также взглянул на некоторые связанные с этим вопросы в SO, такие как загрузка файла Blueimp, как узнать, для какого файла предназначен обратный вызов хода выполнения? но я не смог найти никакого ответа

заранее спасибо

0 ответов

Другие вопросы по тегам