Я использую DZ для загрузки как звуковых файлов, так и изображений в моем веб-приложении .NET MVC.Мне нужно добиться, чтобы по одному запросу все выбранные файлы загружались одновременно.Насколько я понимаю, для достижения этого следует использовать свойства DZ uploadMultiple и parallelUploads.Однако, если оба свойства установлены в true, не работает.
Мой HTML:
@using (Html.BeginForm("UploadSound", "ManageFiles", FormMethod.Post, new { @class = "dropzone", id = "dropzoneSound", enctype = "multipart/form-data" }))
{
<input type="hidden" name="soundId" id="sId" value="0" />
<div class="fallback" multiple="multiple">
<input type="hidden" name="file" value="" />
</div>
}
Моя конечная точка:
[HttpPost]
public ActionResult UploadSound(int soundId)
{
var storedFilenames = new List<string>();
if (soundId > 0)
{
checkFolderExist(Server.MapPath("~/sounds/" + soundId), new List<string>());
for(int i = 0; i < Request.Files.Count; i++){
storedFilenames.Add(SaveFile(Server.MapPath("~/sounds/" + soundId), Request.Files[i]));
}
return Json(new { message = storedFilenames });
}
}
Ниже код запускает конечную точку, но одновременно загружаются только 2 файла.Конечная точка вызывается до тех пор, пока все файлы не будут загружены.
Dropzone.options.dropzoneSound = {
addRemoveLinks: true,
autoProcessQueue: true,
uploadMultiple: true,
maxFilesize: 16, //MB
maxFiles: 6,
parallelUploads:6,
removedfile: function (file) {
var self = this;
var s = document.getElementById('soundFile');
var param = {
"filename": s.value,
"soundId": 0
};
$.ajax({
type: 'POST',
url: '@Url.Action("DeleteSoundFile", "ManageFiles")',
data: JSON.stringify(param),
dataType: "json",
contentType: 'application/json',
success: function (data) {
var soundFileHTML = document.getElementById('soundFile');
var _ref;
return ((_ref = file.previewElement) != null && _ref.parentNode != null) ? _ref.parentNode.removeChild(file.previewElement) : null;
}
});
},
init: function () {
this.on("addedfile", function () {
if (this.files[9] != null) {
this.removeFile(this.files[0]);
}
});
//DZ only uploads 2 files at a time. when 2 files have been uploaded autoProcessQueue has to be set again to trigger next files to upload, if any
this.on("processing", function (data) {
this.options.autoProcessQueue = true;
});
this.on("complete", function (data) {
if (data.xhr != undefined) {
var res = JSON.parse(data.xhr.responseText);
var sIds = document.getElementsByClassName('sId');
for (i = 0; i < sIds.length; i++) {
sIds[i].value = res.soundId;
}
}
});
},
};
При изменении DZ с помощью кода ниже, запрос не достигает конечной точки:
Dropzone.options.dropzoneSound = {
addRemoveLinks: true,
autoProcessQueue: true,
uploadMultiple: true,
maxFilesize: 16, //MB
maxFiles: 6,
parallelUploads:6,
У кого-то есть такая же проблема или есть решение проблемы?Вся помощь очень ценится!