загрузить MP4 с экспо в реагировать родную проблему - PullRequest
0 голосов
/ 04 марта 2019

Я новичок в реагировании на нативе, и это может быть глупым вопросом, но когда я пытаюсь загрузить .mp4 с помощью реакции нативной, используя expo на стороне моего внутреннего сервера (laravel), я получаю файл jpg / jpeg, которыйстранно, потому что с тем же кодом, когда я пытаюсь загрузить файл .mov, он работает, как и ожидалось, без каких-либо проблем.Есть ли что-то, что я сделал неправильно?

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

вот мой код:

 postForm = () => {

        var body = new FormData();
        body.append("title", this.state.text);
        body.append("description", this.state.description);
        body.append("category_id", this.state.category_id);
        body.append("type", this.state.type);

        body.append('media_path', {
            uri: this.state.photos.photos[0].file,
            name: `media.mp4`,
            type: this.state.format
        });



        this.state.photos.photos.map((item, index) => {
            console.log("addable item is", index, item.file);

            //skip first photo to media_path
            if (index == 0) {
                console.log("avalin index: ", item.file)
                return
            }
            else {
                file = item.file.toLowerCase();
                console.log("full name is", file);

                let addable = {
                    uri: item.file,
                    name: `addables`,
                    type: this.state.format
                }
                body.append("addables[]", addable)
            }



        })
        console.log("final body: ", body);


        this.setState({
            uploading: true,

        }, function () {
            let apiUrl = `${config.BASE_URL}api/products`;
            console.log(apiUrl);

            axios({
                method: 'POST',
                url: apiUrl,
                data: body,
                headers: {
                    Accept: 'application/json',
                    'Content-Type': 'multipart/form-data',
                    "authorization": this.state.token
                }
            })
                .then((response) => {
                    //handle success
                    console.log("success response: ", response);
                    if (response.data.status == true) {
                        this.setState({
                            uploading: false
                        }, function () {
                            this.props.navigation.push('profile');
                        })
                    }
                    else {
                        this.setState({
                            uploading: false
                        }, function () {
                            this.showToast("unsuccessful operation.", "danger", 3000);
                        })
                    }
                })
                .catch(function (response) {
                    //handle error
                    console.log(response);
                    alert("response)
                });

        })


    }

и вот что мне записывает журнал laravel:

array (
'title' => 'test',
  'description' => 'test',
  'category_id' => '3',
  'type' => 'video',
  'media_path' => 
  Illuminate\Http\UploadedFile::__set_state(array(
     'test' => false,
     'originalName' => 'media.mp4',
     'mimeType' => 'image/jpeg',
     'error' => 0,
     'hashName' => NULL,
  )),
)
...