如何在Filepond中获取已还原文件的原始属性

时间:2019-10-31 04:02:50

标签: filepond

我关注了filepond文档,了解将初始文件设置为预填充filepond。现在,我想编写一个自定义还原功能,在其中可以基于文件来源使用其他功能。

下面是一个假设的代码,显示我想要实现的目标:

#hypothetical code         
     revert: (uniqueFileId, load, error) => {
            console.log('uniqueFileId is +' uniqueFileId);

            const origin = ? ; //cannot figure out how to get file origin.

            if (origin =='1'){ // origin is input
                // run default function to remove input file

            } else if (origin =='2'){ // origin is limbo
                // run custom function to remove limbo file from server
                }); 

            } else { // origin is local
                // run custom function to remove local file from server

            }
            error('oh my goodness');

            // Should call the load method when done, no parameters required
            load();
        },

问题1: 我无法获取文件的来源。我尝试在revert函数中执行以下代码,但没有一个起作用。我应该如何获取文件的来源?

    const origin = origin;
    console.log('origin is ' + origin); // console not printing anything, no error message.

    const origin1 = FilePond.getFile().origin;
    console.log('origin1 is ' + origin1);// console not printing anything, no error message.

问题2: 假设我可以获取文件的来源,应该如何编写函数来删除输入文件? (起源== 1例)?我发现的一件事是,当我单击新添加文件上的“取消”按钮时,uniqueFileId为“成功”。我不确定这是否应该这样做,因为文件尚未上传或我做错了什么。

在使用“ LIMBO”的情况下,uniqueFileId已正确显示为文件名,例如“ 1.jpg”。我能够将此ID传递到服务器。

1 个答案:

答案 0 :(得分:1)

server.revert函数仅针对limbo源和已处理的输入文件被调用。对于local文件,使用server.remove函数。源在服务器方法中不可用。

如果确实需要,可以存储一个单独的文件列表并比较文件ID。然后,您可以在server.revert方法中使用该列表来查看文件类型。

const myFiles = {
   'myuniquefileid': 'limbo',
   'myotheruniquefileid': 'local',
}

FilePond.create({
  server: {
    revert: (uniqueFileId, load, error) => {
      // origin
      const origin = myFiles[uniqueFileId];

      // more code

    }
  }
})