#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/events3. GetFiles() возвращает только имена файлов, но я постараюсь использовать событие addfile… спасибо
4.Ты уверен? В документах указано, что по крайней мере GetFile() вернет
FileItem
pqina.nl/filepond/docs/api/file-item5. я проверю это еще раз, но в последний раз, когда я пытался это сделать, я смог получить только имя файла.