2015-01-16 2 views
3

У меня проблема с объединением «нормальной» формы с dropzone. У меня есть форма с текстовыми вводами, входными файлами и секцией dropzone. И я хочу опубликовать все сразу. Поэтому я создаю поле dropzone вручную, я отключу функцию autoProcessQueue функции dropzone и привязки к onClick кнопки отправки.Объединить нормальную форму с файловыми входами с dropzone

<form action="/Exhibits/Create" enctype="multipart/form-data" id="newExhibitForm" method="post"> 
    <input id="Exhibit_Name" name="Exhibit.Name" type="text" 
    <input id="Exhibit_Description" name="Exhibit.Description" type="text"> 

    <input id="ModelFile" name="ModelFile" type="file"> 
    <input id="TextureFile" name="TextureFile" type="file"> 

    <div id="dropzonePreview" class="dropzone-previews form-control dz-clickable"> 
     <div class="dz-message">Drag&drop</div> 
    </div> 

    <input type="submit" value="Create" class="btn btn-default"> 
</form> 

JS часть:

var photoDropzone = new Dropzone("#newExhibitForm", { 
    url: $('#newExhibitForm').attr("action"), 
    autoProcessQueue: false, 
    uploadMultiple: true, 
    parallelUploads: 10, 
    maxFiles: 10, 
    previewsContainer: '#dropzonePreview', 
    clickable: '#dropzonePreview', 

    // The setting up of the dropzone 
    init: function() { 
     var myDropzone = this; 

     var submitButton = document.querySelector('input[type=submit]'); 
     myDropzone = this; // closure 

     submitButton.addEventListener("click", function (e) { 
      e.preventDefault(); 
      e.stopPropagation(); 
      if (myDropzone.getQueuedFiles().length === 0) { 
       $('#newExhibitForm').submit(); 
      } 
      else { 
       myDropzone.processQueue(); 
      } 
     }); 
    } 
}); 

И когда я представляю свою форму, нажав кнопку отправки, в функции на стороне сервера есть Dropzone файлы, текстовые входы, но входы файлов не отправлять.

Есть ли способ заставить его работать так, как я описал в начале?

С уважением,
Konrad

ответ

0

Я извиняюсь, но в то время каждый файл будет загружен в индивидуальном порядке. Поэтому вам нужно будет хранить файлы отдельно на своем сервере, а затем, когда dropzone выдает событие complete, вы должны отправить остальные поля ввода.

Смежные вопросы