Получить большой двоичный объект загруженного файла с помощью filepond

#reactjs #filepond

Вопрос:

Я использую filepond для загрузки файла на сервер в react-js. все работает нормально, и я могу успешно загрузить файл. но мне нужно сохранить загруженный файл в браузере (или, возможно, путь к локальному файлу), чтобы я мог показать его пользователю на следующей странице. похоже, что браузеры не показывают абсолютный путь к выбранному файлу (по соображениям безопасности). Интересно, возможен ли большой двоичный объект выбранного файла. есть ли какое-нибудь решение? Спасибо

Ответ №1:

Вы можете использовать URL.createObjectURL() для создания URL-адреса из вашего большого двоичного объекта или файла. Этот URL-адрес можно передать на следующий экран.

 const url = URL.createObjectURL(blob);
 

В зависимости от типа файла вы можете использовать URL-адрес объекта для прямого отображения файла, например, в img-теге, или вы можете преобразовать его обратно в большой двоичный объект.

 <img src={url} />
 

или

 const blob = await fetch(url).then(r => r.blob());
 

Комментарии:

1. Спасибо за ваш ответ, но я не могу получить большой двоичный объект из filepond. как я могу получить его из ввода?

2.Я думаю, вы можете получить его из filepond, используя getFiles() pqina.nl/filepond/docs/api/instance/methods/#getting-files или подписка на FilePond:addfile мероприятие pqina.nl/filepond/docs/api/instance/events

3. GetFiles() возвращает только имена файлов, но я постараюсь использовать событие addfile… спасибо

4.Ты уверен? В документах указано, что по крайней мере GetFile() вернет FileItem pqina.nl/filepond/docs/api/file-item

5. я проверю это еще раз, но в последний раз, когда я пытался это сделать, я смог получить только имя файла.