2014-10-12 4 views
4

Я использовал этот код для загрузки изображения из базы данных в init. Теперь я хочу, когда вы загружаете новое изображение, чтобы удалить это начальное изображение.DropZone Заменить изображение в init

var o = $("div#uploader").dropzone({ 
      url: "../../Merchant/UploadLogo", 
      paramName: "logo", 
      maxFiles: 1, 

      //enqueueForUpload: false, 
      maxfilesexceeded: function (file) { 
       this.removeAllFiles(); 
       this.addFile(file); 
      }, 

      addRemoveLinks: true, 
      uploadMultiple: false, 
      dictRemoveFile: "حذف", 

      removedfile: function(file) { 
       RemoveFile("Logo"); 
       var _ref; 
       return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0; 
      }, 

      init: function() { 

       var mockFile = { name: "avatar1.jpg", size: 12345, type: 'image/jpeg', url: "../../Merchant/GetLogo" }; 
       this.options.addedfile.call(this, mockFile); 
       this.options.thumbnail.call(this, mockFile, mockFile.url);//uploadsfolder is the folder where you have all those uploaded files 
      } 

     }); 

ответ

3

Я предполагаю, что вы хотите заменить старый образ в Dropzone всякий раз, когда новое изображение успешно загружена. Вы можете сделать это путем объединения this.on('success') и this.removeFile методы, предоставляемой Dropzone:

Dropzone.options.myDropzone = { 
    init: function() { 
     this.on('success', function(file, message) { 
      if (this.files.length > 1) { 
       this.removeFile(this.files[0]); 
      } 
     }); 

     // ... 
    } 
}; 

Для этой работы, ваш mockFile также должен быть зарегистрирован в качестве одного из файлов вашего Dropzone. Чтобы сделать это, вы можете поместить его в this.files массив в вашем init, сразу после его отображения:

// Create and Display Mock File 
var mockFile = { name: "avatar1.jpg", size: 12345, url: '/image.png' }; 
this.options.addedfile.call(this, mockFile); 
this.options.thumbnail.call(this, mockFile, mockFile.url); 

// Register it 
this.files = [mockFile]; 

Источник: Dropzone#SuccessEvent, Dropzone#Methods и опыт

+1

Awesome, это делает то, что должно ограничивать загрузку в один файл с помощью 'maxFiles' (но не работает правильно). – nils

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