You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dropzone JS分片上传问题:调用done()后仅上传1个分片

解决Dropzone分片上传仅完成1个分片就结束的问题

兄弟,我太懂你这个头疼的问题了!之前配置Dropzone分片上传时也踩过一模一样的坑——刚传完第一个分片,整个上传流程就直接结束了,剩下的分片根本没机会传。

你现在的问题根源很明确:在chunksUploaded函数里直接调用了done(),Dropzone会把这个操作当成「所有分片已上传完成」的信号,自然就停住了。确实得先判断所有分片都上传完毕,再调用这个方法才行。

给你修正后的配置代码,核心就是在chunksUploaded里做个判断:

Dropzone.options.myDZ = {
  chunking: true,
  chunkSize: 500000, // 设置500KB的分片大小
  retryChunks: true,
  retryChunksLimit: 3,
  chunksUploaded: function(file, done) {
    // 对比已上传分片数和总分片数
    if (file.upload.chunks === file.upload.chunkTotal) {
      // 所有分片都传完了,再通知Dropzone结束流程
      done();
    }
    // 还有分片没传的话,啥也不用做,Dropzone会自动继续上传下一个
  }
};

简单说下逻辑:每传完一个分片,Dropzone都会触发chunksUploaded函数。我们通过file.upload对象里的chunks(已传分片数)和chunkTotal(总分片数)来判断,只有当两者相等时,才调用done()告诉Dropzone可以结束上传流程了。

另外提醒一句,别忘确保后端也做好了分片合并的逻辑哦,不然前端传完所有分片,后端没把它们拼起来,还是拿不到完整文件的。

内容的提问来源于stack exchange,提问作者Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:33:55