2015-11-15 4 views
1

Я использую dropzone с нокаутом. Я хочу добавить существующие файлы в dropzone. Мой Dropzone пользовательские привязки кода (см только код для добавления существующих файлов, добавление новых файлов работает отлично):Dropzone добавить существующие файлы

ko.bindingHandlers.dropzone = { 
      init: function (element, valueAccessor) { 
       var value = ko.unwrap(valueAccessor()); 

       var options = { 
        maxFileSize: 15, 
        uploadMultiple: true, 
        parallelUploads: 100, 
        maxFiles: 30, 
        addRemoveLinks: true, 
        acceptedFiles: ".jpeg,.jpg,.png,.gif", 
        init: function() { 
         var myDropzone = this; 
         this.on("success", function (file, serverFileName) { 
          fileList = []; 
          i = 1; 
          var abc = $.map(serverFileName, function (item) { return (item); }); 
          $.each(abc, function (index, value) { 
           fileList[i] = { "fileName": value, "fileId": i++ }; 
          }) 
         }); 
         if (images) { 
          for (i = 0; i < images.length; i++) { //data in images array is shown in figure 
           myDropzone.emit("addedfile", images[i]); 
           myDropzone.emit("thumbnail", images[i], "/Images/Ads/"); 
           myDropzone.emit("complete", images[i]); 
          } 
         } 
        } 
       }; 

       $.extend(options, value); 

       $(element).addClass('dropzone'); 
       new Dropzone(element, options); 
      } 
     }; 

Данные в images массиве:

data in images array

И мой HTML код:

<form id="my-awesome-dropzone" data-bind="dropzone: { url: '/Electronics/FileUploadHandler' }"method="post" enctype="multipart/form-data"> 
    <h2>Add Images</h2> 
    <div id="dropzonePreview" class="dz-default dz-message"> </div> 
</form> 

В настоящее время добавленные существующие изображения показаны на рисунке. enter image description here

Почему эскиз изображений не отображается? И когда я наводил «Удалить файл», ссылка, которая отображается в нижней левой части браузера, равна javascript:undefined;. И когда я нажимаю «Удалить файл», файл удаляется, но отображается «Отбросить изображения для загрузки», которое должно быть видимым только в том случае, если в dropzone нет изображений. Что я делаю неправильно?

+0

все зависит от того, как вы настроили свой макет файла! – Gacci

ответ

0

Вам необходимо зарегистрировать событие «удаленный файл» и выполнить вызов сервера на «физическое» удаление файла на сервере.

var options = { 
       ... 
       init: function() { 
        var myDropzone = this; 
        ... 
        // Register removedfile event 
        myDropzone.on("removedfile", function (file) { 
         // Ajax call to your server for remove a file 
         $.ajax({ 
         url : 'your/del/file/url', 
         data : {paramName : file.name} 
         }).done({ 
         // Remove successfully 
         }); 
        }); 
       } 
} 
Смежные вопросы