【问题标题】:Upload order with Dropzone.js使用 Dropzone.js 上传订单
【发布时间】:2015-03-10 16:24:36
【问题描述】:

我正在使用 Dropzone.js 和我的 PHP 脚本将文件上传到我的服务器。我注意到它们并没有按照我选择它们的顺序完全上传。例如,假设我有1.jpg2.jpg3.jpg4.jpg5.jpg

它们是按照服务器最快接收它们的顺序上传的。所以它可以像 4, 2, 5, 3, 1 一样上传。

我的 PHP 脚本还将文件插入到数据库中,这就是排序很重要的原因。我找不到按顺序上传的配置选项,但我想我可能可以逐步通过队列并按顺序上传它们,而不是让 dropzone 处理队列。

【问题讨论】:

  • 将parallelUploads 设置为1 有帮助吗?
  • @Sully 似乎工作正常!它仍然按照选择文件的顺序上传,但这比随机顺序好,谢谢
  • 没有问题。已经有一段时间了,但我遇到了类似的问题。为了保持并行(并且更快)上传,我使用了 dropzone 的完成/成功事件之一将“文件 ID”传递回页面。在用户“保存页面”之后,我按照我想要的顺序发回了文件 ID。这样可以任意上传/保存文件,但最终保存了订单。如果您对其中的一些代码感兴趣,我可以挖掘它。
  • 如果parallelUploads 不可用,我将对文件队列和事件做类似的事情。这个解决方案就足够了。如果您想将其发布为答案,我会接受。

标签: javascript file-upload dropzone.js


【解决方案1】:

parallelUploads 设置为 1 应该会有所帮助,但速度会非常慢,具体取决于要上传的文件数量/文件大小。

要取回并行上传,但可以控制顺序,您可以将 FileID 作为来自上传 url 的响应传回,并且可以在 dropzone 的成功事件中读取...

dropzoneObject.on("success", function (file, response) {
    // Requires a hidden field named FileIDs to exist in your previewTemplate.
    $(file.previewElement)
        .find("input[name='FileIDs']")
        .val(response);
});

在所有上传完成后(queuecomplete 事件),您可以按照您想要的顺序回发 FileID。

【讨论】:

  • 确认将parallelUploads 属性设置为1 将排序顺序固定为选定的内容。谢谢萨利!
猜你喜欢
  • 2016-10-31
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
  • 2013-08-30
  • 2015-04-08
  • 1970-01-01
  • 2013-12-21
相关资源
最近更新 更多