Загрузить изображение - Strapi - React Native

Я новичок в React Native и Strapi, и я хочу загружать изображения в API: мое приложение позволяет пользователю добавлять объявление о продаже (название, описание, количество, количество лотов, цена, фото 1, фото 2, .. .).

Я могу добавить объявление о продаже с текстовыми полями, но не с фотографиями. И я не могу найти, как это сделать, в документе Strapi (я использую MongoDB). Зная, что Strapi не принимает FormData. На данный момент я получаю изображение смартфона в формате base64 и отправляю его в API, но это не работает.

Insert_Into_DataBase = () => {
console.log("insert");
console.log(this.state.image1);

this.setState(
  {
    ActivityIndicator_Loading: true
  },
  () => {
    console.log("fetch");

    fetch("http://192.168.0.102:1337/annonces", {
      method: "POST", 
      headers: {

        "Content-Type": "application/json"
      },

      body: JSON.stringify({
        titreAnnonce: this.state.titre, 
        description: this.state.description,
        qte: this.state.disponibilite,
        nbrLots: this.state.lots,
        Image1: this.state.image1
      })
    })
      .then(response => response.json())
      .then(responseJsonFromServer => {
        alert(responseJsonFromServer + "L'annonce à bien été postée");
        this.setState({ ActivityIndicator_Loading: false });
      })
      .catch(error => {
        console.error(error);
        this.setState({ ActivityIndicator_Loading: false });
      });
  }
);
   };

person DataCube    schedule 26.08.2018    source источник


Ответы (2)


На самом деле, чтобы добавить загрузку к записи (announces в вашем случае), вам нужно сначала создать свою запись.

Затем вам нужно будет использовать маршрут /upload для загрузки файла (один за другим). Здесь есть документация о параметре, который нужно установить, чтобы связать файл с правильной записью https://strapi.io/documentation/guides/upload.html#usage.

После этого, если у вас возникнут проблемы с форматом файла, вы можете проверить здесь https://github.com/strapi/strapi/blob/master/packages/strapi-plugin-upload/controllers/Upload.js.#L34 это где формат файла преобразован, вы, вероятно, обновите идентификатор для обработки base64 файлов.

person Jim LAURIE    schedule 26.08.2018
comment
Если у меня есть 4 фотографии для загрузки, мне нужно будет сделать: - POST = ›Создать объявление - POST =› Загрузить мою фотографию1 - POST = ›Загрузить мою фотографию2 - POST =› Загрузить мою фотографию3 - POST = ›Загрузить мою фотографию4 - PUT = ›Обновите поля фото1, фото2, фото3, фото4 моего объявления. Очень много просьб. Я попробую это. Спасибо! - person DataCube; 27.08.2018

Strapi теперь позволяет нам отправлять данные формы для загрузки файла. Создание объекта и загрузка файла могут быть выполнены в одном почтовом запросе. Пожалуйста, обратитесь: https://strapi.io/documentation/developer-docs/latest/development/plugins/upload.html

person Anuj Divkar    schedule 30.03.2021