首页 > 解决方案 > 上传后基于响应的 Dropzone.js 重命名文件

问题描述

我正在尝试找出一种方法,如何在使用 dropzone.js 上传后重命名文件,以便以后只需发送正确的名称即可将其删除。

我现在拥有的:

this.on("success", function(file, responseText) {
   console.log(responseText); // responseText contains actual file name after server modifications
});

addRemoveLinks: true,
        this.on("removedfile", function(file) {
          var name = file.name;
          $.ajax({
            type: 'POST',
            url: 'delete_file.html',
            data: {
              'file-name': name,
            },
          });
        });

正如您在我的 ajax 数据中看到的那样,我发送的是初始文件名,而不是实际在服务器上的文件名(例如,如果有多个相同的命名文件,服务器将重命名它们)。我一直在考虑在成功时更改 previewElement 名称:

file.previewElement.querySelector(".name").textContent = responseText;

然后在ajax中引用这个,但它看起来不像是一种优雅的方法。

其他替代方法是创建一个带有 <file, new_name> 映射的地图,但我不确定这是否是矫枉过正。

您如何建议在上传后访问新文件名?

标签: javascriptdropzone.js

解决方案


我想出的最干净的选择是使用file.xhr.response保存新名称的值而不是file.name


推荐阅读