我正在使用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对象,也不会保留更改。我正在失去理智...
有谁看到我在这里缺少的东西?或者是否有更好的方法来修改文件的名称,然后再使用Dropzone上传文件?
答案 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");
});
希望它有所帮助。