Загрузить изображение в Firebase, используя Formdata React Native - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь загрузить изображение в firebase, используя formdata.but я получаю эту ошибку

"Invalid data; couldn't parse JSON object, array, or value."

Это мой код

const formData = new FormData();
    formData.append('Lname', 'aa');
    formData.append('FName', 'aas');
    formData.append('image', {
        url:image,
        name:'profilePic.jpg',
        type: 'image/jpg'


    })

   const request =  axios({
    method: 'POST',
        url:`https://test2card-e8014.firebaseio.com/profileInfo.json`,
      data: formData,
      headers: {

        'Content-Type': 'multipart/form-data;',
      },
    }).then( response => {

        console.log('log', response.data)
        return response.data
    }).catch(e=>{
    console.log('err',e.response.data)

    })

и я использую симулятор ios URL этого моего изображения - файл: /// Пользователи / kk / Библиотека / Разработчик / CoreSimulator / Устройства / 3ED3277A-DE0C-478A-AFAE-FE24D67A76DB / данные / Контейнеры / Данные / Приложение / D091EAA9-E390-49C8-AFF7-E862A6A8B93A / Документы / изображения / F0FDE0FB-84FE-43BB-8F0C-25D52A223703.jpg

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

Спасибо.

1 Ответ

0 голосов
/ 31 августа 2018

Я не думаю, что Firebase по умолчанию принимает запросы multipart / form-data, поэтому вам стоит посмотреть, как это сделать, чтобы ваш запрос работал.

Таким образом, вы можете получить запросы multipart / form-data, работающие с firebase, использовать другой сервис для отправки файлов, например Cloud Storage for Firebase .

В качестве альтернативы, если ваши файлы не будут слишком большими, и вы не хотите настраивать Firebase, а также разрешать запросы multipart / form-data, вы можете отправить файлы в виде строк Base64, а затем выполнить декодирование Firebase. строку base64 в обработчике запросов и обработайте ваше изображение так, как вы планируете.

Помните, что отправка как Base64 увеличит размер данных на ~ 1/3, а также вычисления, необходимые на внешнем интерфейсе для преобразования изображения в base64.

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