如何在dropzone.js中返回每个图像的结果

How to return a result per-image in dropzone.js

本文关键字:图像 结果 返回 dropzone js      更新时间:2023-09-26

我正在使用DropZone上传一批图像,但我想在每个图像之后立即通知用户它的状态。

例如,如果图像不合格,那么我想将其标记为合格。

Dropzone.js允许您将回调附加到循环中的各种事件。要在每个文件上传到服务器后提供状态,可以注册successerror回调以提供此功能。
var myDropzone = new Dropzone("div#myId", { url: "/file/post" });
// attach callback to the `success` event
myDropzone.on("success", function( file, result ) {
  // the file parameter is https://developer.mozilla.org/en-US/docs/DOM/File
  // the result parameter is the result from the server
  // [success code here]
});
// attach callback to the 'error' event
myDropzone.on("error", function( file, errorMessage, xhr ) {
  // if the xhr parameter exists, it means the error was server-side
  if (xhr) {
    // [error code here]
  }
});

我在这里找到了解决方案https://github.com/enyo/dropzone/issues/247

enyo于2013年8月1日发表评论如果您将uploadMultiple设置为true,那么一个AJAX请求应该包含与parallelUploads一样多的文件。如果您将uploadMultiple设置为false,则会有同样多的AJAX请求为并行上传。Pedro Cunha

pedrocunha在2013年8月1日发表评论确切地说,这个错误可能是被认为是一个功能:),因为我可以将parallelUploads设置为1每个AJAX请求一次只有一个图像,但在同时Pedro Cunha

pedrocunha在2013年8月1日发表评论我的观点是:这非常重要的是,如果一个图像由于某种原因无法上传,让我们比如服务器验证错误,您可以只处理该图像。如果你在处理一组内容时,显示错误更为棘手。做你明白我的意思吗?看起来配置发送的图像数量会很好在每个AJAX请求上?

意思是如果我设置:

{
  parallelUploads: 8,
  uploadMultiple: false,
}

然后,它将在prallel中上传8个文件,每个文件都在自己的AJAX调用中,服务器可以为每个图像返回错误代码。