2016-03-08 62 views
0

我有這樣的例子:如何刪除現有的文件dropzone?

link

代碼HTML:

<div class="dropzone dz-clickable" id="myDrop"> 
    <div class="dz-default dz-message" data-dz-message=""> 
      <span>Upload or drag patient photo here</span> 
    </div> 
</div> 

CODE JS:

Dropzone.autoDiscover = false; 
var myDropzone = new Dropzone("div#myDrop", { 
    addRemoveLinks: true, 
    url: "#", 
    maxFiles: 1, 
    init: function() { 

    this.on("maxfilesexceeded", function(file) { 
     alert("You are not allowed to chose more than 1 file!"); 
     this.removeFile(file); 

    }); 

    this.on("addedfile", function(file) { 
     myDropzone.options.removefile.call(myDropzone, mockFile); 
     // I want to delete an existing element 
    }); 

    } 
}); 

var fileName = $('#profilePicture').val(); 
var mockFile = { 
    name: fileName, 
    size: 12345 
}; 
myDropzone.options.addedfile.call(myDropzone, mockFile); 
myDropzone.options.thumbnail.call(myDropzone, mockFile, "https://lh3.googleusercontent.com/-eubcS91wUNg/AAAAAAAAAAI/AAAAAAAAAL0/iE1Hduvbbqc/photo.jpg?sz=104"); 

我想要做的是用戶上傳的時候一個文件,然後現有的一個是重新移動。

你如何正確地做到這一點?

在此先感謝!

+0

在上傳另一個文件之前,'myDropzone.removeAllFiles()'怎麼樣? – wong2

+0

你能編輯我的例子嗎? –

+0

沒人知道..? –

回答

4

這是一個工作方法:

var currentFile = null; 
Dropzone.autoDiscover = false; 
var myDropzone = new Dropzone("div#myDrop", { 
    addRemoveLinks: true, 
    url: "#", 
    maxFiles:1, 
    init: function() { 
    this.on("addedfile", function(file) { 
     if (currentFile) { 
     this.removeFile(currentFile); 
     } 
     currentFile = file; 
    }); 
    } 
}); 
+0

是的,但我想要替換第一個圖像(默認加載) –

+0

@ D.Cristi然後在文件底部添加'currentFile = mockFile;' – wong2

+0

@ D.Cristi這裏是一個工作示例:http:/ /codepen.io/anon/pen/qZbvwV – wong2

0

工作對我來說,如果圖像是在懸浮窗已上載,它不會讓我增加更多。

this.on("addedfile", function(file) { 
    /* Valid only in the dropzone . If a repetitive document shows ALERT and the previous item will disappear.(Sorry my English). */ 
    if (this.files.length) { 
    var i, len, pre; 
    for (i = 0, len = this.files.length; i < len - 1; i++) { 
     if (this.files[i].name == file.name && this.files[i].size == file.size && this.files[i].lastModifiedDate.toString() == file.lastModifiedDate.toString()) { 
     alert("Doc: " + file.name + " is already registered.") 
     return (pre = file.previewElement) != null ? pre.parentNode.removeChild(file.previewElement) : void 0; 
     } 
    } 
    } 
}); 
1

試試這種方法。

removedfile: function(file) { 
      file.previewElement.remove(); 
} 
0

「每次你的活動」 我愛:成功 - 錯誤 - 發送 - 從這項功能可以做到這一點的刪除文件removedfile或addedfile等

http://www.dropzonejs.com/#event-list

init : function() { 
    self.on('Every your events', function (file, response) { 
     this.removeFile(file); 
    } 
} 

Dropzone.forElement("div#myDrop").removeAllFiles(true); 
1

試試這種方法:

success: function (file, response) { 
        if (this.files.length > 1) 
         this.removeFile(this.files[0]); 
        //Do others tasks... 
       } 

使用這種方法,前一項將被刪除。