停止生成预览?

时间:2018-07-11 08:02:55

标签: dropzone.js

我希望仅在满足某些其他条件(页面上其他位置已提供要上传文件的元数据)时才进行上传。否则,请勿开始上传,甚至不要创建预览。只需输入一个alert,说在上传任何项目之前就需要输入元数据。

我确实可以通过使用非null参数调用提供的accept函数来抢占done处理程序中的上载。例如

done("You need to enter a UPC code for this image.");
return false;

但是,预览仍会创建,并带有error覆盖。

我尝试了几种方法,包括捕获drop事件没有成功。即使我取消了该事件(包括任何进一步的下游处理),它仍然希望显示预览。

1 个答案:

答案 0 :(得分:0)

结果证明,答案可能太简单了:我需要在removeFile处理程序中调用accept

因此,我的accept处理程序看起来像这样:

accept: function(file) {
  if (/* condition not met */) {
    alert("You haven't met the condition. No upload for you!");
    deleteOnServer = false;
    this.removeFile(file);
    deleteOnServer = true;
    return false;
  }

  /* otherwise, do normal "accept" processing. */

请注意,由于我也有一个标志,因此我要检查何时要做的只是从dropzone中删除文件,但不要将它们放在服务器上。 (即,我可能正在上传以替换已经存在的内容。)因此,我 在我的Dropzone init函数中注册一个“ removedFile”事件处理程序:

init:  function() {
  this.on("removedFile", function(file) {
    if (!deleteOnServer) {
        return false;
    }

    /* otherwise, send $.ajax(DELETE) request to server */
       :
  }