Как получить свойство происхождения возвращенного файла в 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: предположим, что я могу узнать происхождение файла, как мне написать функцию для удаления входного файла? (в случае origin == 1)? Одна вещь, которую я обнаружил, заключалась в том, что когда я нажимаю кнопку отмены для только что добавленного файла, uniqueFileId был «успешным». Я не уверен, так ли это должно быть, потому что файл не был загружен или я сделал что-то не так.

В случае LIMBO в качестве имени файла правильно отображался uniqueFileId, например, 1.jpg. Мне удалось передать этот идентификатор серверу.


person ha-neul    schedule 31.10.2019    source источник


Ответы (1)


Функция 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

    }
  }
})
person Rik    schedule 01.11.2019
comment
@Rik Спасибо, что указали, что revert для limbo происхождения! Я должен был использовать local, а не limbo. Мне удалось ознакомиться с этим сообщением на github (github.com/pqina/filepond/issues/192), чтобы заполнить файл-ответ local файлами. - person ha-neul; 10.11.2019