Загрузка нескольких изображений на сервер с параметрами детали, используя axio реагирует родной - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь загрузить несколько изображений на сервер, используя axio с несколькими параметрами в качестве тела запроса. В основном ниже запрос в родной Android, который пытается сделать это в реагировать родной.

@Headers(HTTPService.NEEDS_AUTH_HEADER)
        @Multipart
        @POST("/api/post")
        Call<Post> create(
                @Part("title") RequestBody title,
                @Part("content") RequestBody content,
                @Part("location") RequestBody location,
                @Part("category") RequestBody category,
                @Part("captions") List<RequestBody> captions,
                @Part List<MultipartBody.Part> parts
        );

и вот как я пытаюсь реагировать:

const config = {
      method: 'post',
      headers: {
        'NEEDS_AUTH': true,
        Accept: 'application/json',
        'Content-type': undefined

      },
      formDataArray,
      url: PATH_API_CREATE_POST,
      data: {
        title: postTitle,
        content: postContent,
        location: locationId,
        category: categoryId,

      }
    }

    axios(config).then(res => console.log('create post ', res)).catch(err => console.log('create post err', err.response)) 

Вот это форма DataArray:

photos.forEach(element => { let formdata = new FormData(); formdata.append("upload", { uri: element, name: 'image.jpg', type: 'image/jpg' }) formDataArray.push(formdata) });

К сожалению, на сервер не загружены изображения.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018
const data = new FormData()

photos.forEach((element, i) => {
  const newFile = {
    uri: element, type: 'image/jpg'
  }
  data.append('files[]', newFile)
});

документы говорят https://developer.mozilla.org/en-US/docs/Web/API/FormData/append#Example

0 голосов
/ 26 июня 2018

Предполагается, что ваш массив photos содержит массив путей файловой системы к загруженным фотографиям, Ваши FormData должны проходить через это так:

const data = new FormData()

photos.forEach((element, i) => {
  const newFile = {
    uri: element, type: 'image/jpg'
  }
  data.append('files', newFile)
});

Затем вы можете прикрепить эту переменную data к вашему почтовому запросу, чтобы загрузить массив файлов на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...