我需要检查文件是否具有有效的 MIME 类型,文件大小是否正常以及尺寸是否正常,然后上传文件。

所以当一切正常时,我可以使用:

complete: function(file){
    // do something here.
}

但是如果文件的大小无效怎么办?在我的 PHP 脚本中,我返回一条错误消息:
return json_encode(['error' => 'size is invalid']);

或者
return Response::json(['error' => 'size is invalid'], 500 ];
// this is Laravel 4 syntax. returns a json array and 500 as status code.

但是我该如何处理 DropzoneJS 中的 error 呢?

我尝试向 complete() 函数添加第二个参数,但它不起作用。
complete: function(file, response){
    console.log( response ); // this does not work.
}

最佳答案

要在文件提交到服务器后获得响应,请在 DropzoneJS 中使用它:

success: function(file, response) {
  alert(response);
}

并在上传之前验证文件,请使用:
complete: function(file) {
  if (file.size > 3.5*1024*1024) {
     alert("File was Larger than 3.5Mb!");
     return false;
  }

  if(!file.type.match('image.*')) {
    alert("Upload Image Only!");
    return false;
  }
}

如果您的服务器在 response 中返回 JSON ,则您需要在 JSON.parse 之前使用 alert

希望能帮到你!干杯! :)

10-04 20:51