Реагируйте.JS: как я могу создать данные формы для изображения, хранящегося в общей папке

#javascript #reactjs #axios

#javascript #reactjs #axios

Вопрос:

в общей папке есть несколько изображений, и когда пользователь выбирает одно из них, я должен отправить изображение на сервер, и это должен быть сам файл изображения, а не его имя или что-то еще, проблема в том, что когда я импортирую изображение следующим образом:

 import file1 from "../../../public/static/images/1.png"
 

а затем используйте этот код:

 const data = new FormData();
data.append("useChoice", file1);
 

результат будет пустым или не будет файлом. как я должен с этим справиться?

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

1. Что, если вы загрузите изображение на сервер и загрузите его оттуда? Таким образом, вы можете передать абсолютный путь к изображению на сервере на сервер, и он сможет получить к нему доступ локально, а не получать изображение от клиента?

2. это действительно хороший ответ, и большое вам спасибо за ваше время, но мне сказали это сделать, у меня нет других вариантов, кроме как загрузить само изображение

3. Существует разница между использованием ввода файла и простым импортом изображения. Использование импортированного изображения так же, как файла, выбранного пользователем, не работает. Однако есть некоторое обходное решение: medium.com/trabe /…

Ответ №1:

вместо того, чтобы загружать изображение и отправлять его клиенту, пользователь затем снова отправляет его на сервер. вы должны использовать ссылку на эти изображения. Если вы должны сделать это таким образом, попробуйте https://webpack.js.org/guides/asset-management/#loading-images

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

1. спасибо за ответ, я еще не пробовал это в коде, но я прочитал статью и думаю, что это должен быть ответ, так что спасибо

2. @simaghoreyshi Если ваша задача состоит в том, чтобы фактически загрузить весь файл, это неправильный ответ. Вы просто отправляете ссылку на сервер, сообщая серверу, чтобы он сам загрузил файл.

3. @timotgl да, я должен загрузить весь файл, что мне делать? есть ли рабочее решение? Я искал ооооочень долго, это кажется таким непрофессиональным, но мне сказали это сделать.

4. @simaghoreyshi Смотрите мой комментарий к вашему первоначальному вопросу выше. Я уверен, что есть решение, просто немного сложно использовать импортированный файл таким образом. Кстати, это хорошее упражнение.