React Native - Axios - Попытка загрузить изображение - PullRequest
0 голосов
/ 22 октября 2018

Я новичок в React Native и пытаюсь загрузить изображение с помощью Axios, но получаю: Request failed with status code 500

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

Вот мой код, пожалуйста, помогите мне, если вы знаете решение, когда я консоль данных журнала, все данные в порядке !!

const data = new FormData();
        data.append('name', name);
        data.append('childrenImage', childrenImage);
        data.append('parent', parent)

        console.log(data);

        axios.post('http://192.168.0.24:3000/childrens/', data, {
                headers: {
                    'Authorization': auth,
                    'accept': 'application/json',
                    'Content-Type': `multipart/form-data`
                }
            }
        ).then(res => {
            console.log(res.data);
            console.log(res.status);
        })
        .catch(err => {
            console.log(err.message);
        });

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Я нашел решение.Сначала мне нужно было удалить file: // из моего URI, поэтому я добавил код:

const fileURL = this.state.pickedImaged.uri;
const cleanURL = fileURL.replace("file://", "");

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

Надеюсь, он поможет тому, у кого такая же проблема

0 голосов
/ 22 октября 2018

в ответ я использую следующий код:

//Set file in state
fileChangedHandler = (event) => {
    this.setState({ selectedFile: event.target.files[0] })
  }

//Set form data and request in axios
uploadHandler = () => {
    const formData = new FormData();
    console.log(this.state.selectedFile)
    formData.append('file', this.state.selectedFile, this.state.selectedFile.name);

    axios.post('http://localhost:3000/api/uploadFile', formData)
      .then((response) => {
        console.log(response)
        }
      .catch((err) => {
        console.log(err)
      })

В серверной части получить файл и проверить с console.log (req.files)

Я надеюсь, что помогВы:)

...