【问题标题】:Same name for all files uploaded with Dropzone.js使用 Dropzone.js 上传的所有文件的名称相同
【发布时间】:2017-06-20 09:44:42
【问题描述】:

我对 dropzone 有疑问:上传到远程时所有文件名都相同。

这是我的代码:

var AUTH_TOKEN=$('meta[name="csrf-token"]').attr('content');

      Dropzone.autoDiscover = false;
      var myDropzone = new Dropzone("div#mydropzone",{
          url: "<%= professionnel_diagnostiqueur_diagnostiqueurdevi_diagnostiqueurreponses_path(@devi.diagnostiqueur.professionnel.id,@devi.diagnostiqueur.id,@devi.id) %>",
          autoProcessQueue: false,
          uploadMultiple: true,
          addRemoveLinks:true,
          parallelUploads:10,
          maxFilesize: 15,
          params:{
              'authenticity_token':  AUTH_TOKEN
          },
          successmultiple: function(data,response){
              $('#msgBoard').append(response.message).addClass("alert alert-success");
              $('#msgBoard').delay(2000).fadeOut();
              $('#fileslist').val(response.filesList);
              $('#photographedit').off('submit').submit();
          }
      });

      $('#photographedit').submit(function(e){
          if(myDropzone.getQueuedFiles().length > 0){
              e.preventDefault();
              myDropzone.processQueue();
          }
      });

有这个话题:Dropzone uploaded file have same name 但是没有答案

还有这个建议添加隐藏字段的帖子:https://github.com/enyo/dropzone/issues/580

虽然我还是 JS 的菜鸟。有人可以帮我考虑正确的代码来为我的上述代码添加隐藏字段吗?拖放位于 id mydropzone 上,表单的 id 为 photographedit

【问题讨论】:

  • 我有同样的问题,使用相同的 Dropzone 配置。所有文件都获取最后添加的文件的文件名!有消息了吗?
  • 不。没有尝试过下面的答案,但直觉上我知道它不会解决它。我正在通过代码学院学习 JS,这样我就可以自己修复它,但不确定我会成功。如果您知道如何调整 JS 并添加隐藏字段,您可以在我提供的链接中找到灵感。
  • 啊!从 Dropzone 5.0.1 更新到当前版本 5.1.1 解决了我的问题!你是哪个版本的?
  • 整洁!!!谢谢。现在一切正常。还有一些事情需要检查,但文件命名行为符合预期

标签: javascript dropzone.js


【解决方案1】:

您可以在将文件发送到服务器之前更改文件名

myDropone.on('processingfile', function(file) {
  file.name = file.name + Math.floor(Date.now() / 1000);
});

【讨论】:

  • 谢谢 Ariel,但我真的想保留用户名,因为用户可以上传 PDF 和图像,并且保留原始 PDF 名称对最终用户非常有用...
  • 所以在名字后面加个字符串 -> Math.floor(Date.now() / 1000)
  • 我正在尝试这个。你能确认我应该把你的代码放在哪里吗?代码中的某个地方已经存在或最后是正确的?
  • 可以放在init函数里面
  • 我没有看到任何初始化? (是的,对不起,我对 JS 很差)
猜你喜欢
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 2010-10-25
  • 1970-01-01
相关资源
最近更新 更多