Dropzone JS在上传之前更改文件名

时间:2016-03-02 20:22:42

标签: javascript angularjs dropzone.js

我正在使用Dropzone.js来处理文件上传。我真的希望能够在将文件上传到S3之前修改文件的原始名称。如下所示,能够使用dropzone's processing file hook会很好,但看起来我对此文件对象所做的更改都没有持续...

myDropone.on('processingfile', function(file) {
  console.log(file.name) // 'Randy.png'
  file.name = 'my-custom-name.png';
  console.log(file.name) // 'Randy.png'
});

即使尝试在控制台中修改此File对象,也不会保留更改。我正在失去理智...

enter image description here

有谁看到我在这里缺少的东西?或者是否有更好的方法来修改文件的名称,然后再使用Dropzone上传文件?

1 个答案:

答案 0 :(得分:6)

文件是HTML 5文件对象,其中一些属性是只读的,因为您可以看到here

但是,您可以为文件对象设置一个新属性,如:

myDropone.on("sending", function(file) {
    file.myCustomName = "my-new-name" + file.name;
    console.log(file.myCustomName);
});

编辑:此外,文档说,推荐的方式在post post的主体中发送aditional params:

myDropzone.on("sending", function(file, xhr, formData) {
     // Will send the filesize along with the file as POST data.
     formData.append("filesize", file.size);
     formData.append("fileName", "myName");
});

希望它有所帮助。