Как я искал на Google, нет никакого способа, чтобы отправить один запрос на несколько «Dropzone» с тем же URL, поэтому я решил эту проблему вручную с помощью следующих шагов:
1) Dropzone фактически меняет изображения на строку Base64 для предварительного просмотра миниатюр, а затем добавляет эту строку в источник тега «img». Таким образом, вы должны прочитать, что изображение «SRC» и «Alt», а также добавить их к типу входного скрытом динамически, как:
$('#btnUpload').on('click', function() {
$.each($("img[data-dz-thumbnail]"), function(index, value) {
$('<input>').attr({
type: 'hidden',
name: 'myHiddenFiles[' + index + '].Key',
value: $(value).attr("alt")
}).appendTo('#newsForm');
$('<input>').attr({
type: 'hidden',
name: 'myHiddenFiles[' + index + '].Value',
value: $(value).attr("src")
}).appendTo('#upload-Invoices');
});
$("#upload-Invoices").submit();
});
Повторите эти коды для каждого DropZone вы должны размещать свои данные.
2) В вашем методе действий вам нужно добавить параметр с типом «Словарь», чтобы получить имя файла и содержимое файла в формате строки Base64. Затем вы можете проанализировать строку Base64 как изображение, сохранить его как файл и сохранить данные формы в базе данных. Вы можете увидеть, связанный фрагмент кода следующим образом:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ModelClass model, IDictionary<string, string> myHiddenFiles)
{
if (ModelState.IsValid)
{
foreach (var file in myHiddenFiles)
{
var base64 = file.Value.Substring(file.Value.IndexOf(',') + 1).Trim('\0');
var bytes = Convert.FromBase64String(base64);
var saveFile = Server.MapPath("~/Images/" + file.Key);
System.IO.File.WriteAllBytes(saveFile, bytes);
// Save your model to database....
}
}
return View();
}
Как я регулировали этот случай был, установив метод загрузки в мой контроллер, который сохранен локально все файлы на их загрузки. Затем, когда пользователь отправил форму, я просто взял файлы и сохранил их там, где их нужно было сохранить по их ссылкам. Этот способ, конечно, имел некоторую обработку javascript, когда файл был удален, и мне пришлось удерживать некоторые дискриминаторы для моих файлов, но это было то, что работало для всех типов файлов и было прочным. Если вас интересует такой способ, я мог бы предоставить код для этого, поэтому дайте мне знать ... –