上传图像后清除dropzone.js缩略图

Fad*_*adi 18 javascript ajax asp.net-mvc jquery dropzone.js

我在mvc中使用了dropzone.js,按照本教程上传图像,但在上传图像后,缩略图仍然显示,我需要在每次上传图像后将其删除.

我已经尝试使用jQuery上传图像后替换生成的HTML但是它没有正确显示,因为我第一次需要刷新页面才能正确显示但我不想这样做.

 $("#ImageUpload").replaceWith('<form action="/Products/SaveUploadedFile" method="post" enctype="multipart/form-data" class="dropzone dz-clickable" id="dropzoneForm">'
 +'<div class="fallback">'
 +'<input name="file" type="file" multiple />'
 +'<input type="submit" value="Upload" />'
 +'</div>');
Run Code Online (Sandbox Code Playgroud)

Gir*_*ldi 26

你可以试试这个:

myDropzone.on("complete", function(file) {
  myDropzone.removeFile(file);
});
Run Code Online (Sandbox Code Playgroud)

更多信息请访问:http: //www.dropzonejs.com/#dropzone-methods

  • @MikeB。:你确定吗?文档说 _“如果你想从 **dropzone** 中删除添加的文件,你可以调用 `.removeFile(file)`。”_ 据我所知,它只影响 **dropzone**。该方法触发 `removedfile` 事件,该事件_“您可以收听...并从您的服务器中删除文件**如果您愿意**。”_ 从服务器中删除文件似乎是**可选的** . 如果我穿了,请纠正我... (3认同)
  • `removeFile()`/`removeAllFiles()` 也从服务器端删除上传的文件,这不是主题启动者所要求的。 (2认同)

Fla*_*pes 8

removeAllFiles()并且removeFile()将触发服务器端的去除也一样,如果你上钩悬浮窗删除的文件.

解决方案只在客户端清除它,删除文件预览,如果有空白状态消息,请删除dz-started该类以防止Dropzone CSS隐藏它:

$('.dropzone')[0].dropzone.files.forEach(function(file) { 
  file.previewElement.remove(); 
});

$('.dropzone').removeClass('dz-started');
Run Code Online (Sandbox Code Playgroud)


小智 6

另一种选择(类似于Giraldi的回答,但是当所有文件都完成时):

myDropzone.on("queuecomplete", function () {
    this.removeAllFiles();
});
Run Code Online (Sandbox Code Playgroud)

  • 它也会从服务器端删除上传的文件,而 TS 会询问如何清除 dropzone 文件字段(从缩略图中),而不是询问如何删除已上传的文件。 (3认同)

Fad*_*adi 5

这实际上是一件容易做的事情,但有一段时间它很难,所以我只是使用 jquery 删除 dropzone 生成的代码,'id = btnCreate'然后添加一个按钮

 $('#btnCreate').click(function () {
        $('div.dz-success').remove();
   });
Run Code Online (Sandbox Code Playgroud)

当我上传缩略图时,单击按钮后删除

  • 抱歉,这是一个糟糕的解决方案。使用提供的 removeFile() 和 removeAllFiles() 方法的另外两个答案是正确的,并且会减少麻烦。执行此操作时,内部文件计数器不会重置。 (2认同)