Как получить свойство origin обращенного файла в filepond - PullRequest
1 голос
/ 31 октября 2019

Я следовал за документом filepond о настройке исходных файлов для preopopulat 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: Я не могу получить источникфайл. Я попробовал следующий код внутри функции возврата, ни один из них не работал. Как мне получить источник файла?

    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». Я смог передать этот идентификатор на сервер.

1 Ответ

1 голос
/ 01 ноября 2019

Функция server.revert вызывается только для исходных файлов limbo и входных файлов, которые были обработаны. Для файлов local используется функция server.remove. Источник недоступен в методах сервера.

Если вам это нужно, вы можете сохранить отдельный список файлов и сравнить идентификатор файла. В методе server.revert вы можете использовать этот список, чтобы увидеть, что это за файл.

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

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

      // more code

    }
  }
})
...