Загрузите изображение, используя Ax ios в React Native на Android - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь загрузить файл с помощью ax ios, но запрос не выполняется. искали довольно много, кажется, что все делают то же самое и работают для них. Что-то мне не хватает?

Мой запрос в саге выглядит так:

function* postUploadUtilityList(list) {
  console.log('List', list.data);
  const { data } = list;
  for (const i in data) {
    if (list.data.hasOwnProperty(i)) {
      yield call(postUploadUtility, data[i]);
    }
  }
}

const createFormData = (photo, body) => {
  const data = new FormData();
  data.append('image', photo);

  Object.keys(body).forEach((key) => {
    data.append(key, body[key]);
  });

  return data;
};

function* postUploadUtility(item) {
  console.log('item', item);
  try {
    const body = {
      caption: 'utility',
    };
    const formData = createFormData(item, body);
    const apiConfig = {
      method: 'post',
      baseURL: getBaseUrl(BB),
      url: '/client/upload',
      data: formData,
      headers: {
        Accept: 'application/json',
        'Content-Type': 'multipart/form-data',
      },
    };
    const res = yield call(http, apiConfig);
    if (res.status === 200) {
      const { data } = res;
      yield put({
        type: POST_UTILITY_UPLOAD_SUCCESS,
        data,
      });
    } else {
      const { data } = res;
      yield put({
        type: POST_UTILITY_UPLOAD_FAILURE,
        data,
      });
    }
  } catch (e) {
    yield put({
      type: POST_UTILITY_UPLOAD_FAILURE,
      e,
    });
  }
}

export default function* watchPostUploadUtility() {
  yield takeLatest(POST_UTILITY_UPLOAD, postUploadUtilityList);
}

Журнал выглядит следующим образом: enter image description here

network call looks like as follow: введите описание изображения здесь

1 Ответ

0 голосов
/ 03 августа 2020

Попробуйте эти решения, используйте изображение base64 вместо URL-адреса изображения

...