Загрузить видео на сервер, используя rn-fetch-blob реагирует на натив - PullRequest
0 голосов
/ 16 октября 2019

Здравствуйте, я пытаюсь загрузить видео на сервер, используя rn-fetch-blob. Вот мой код.

 var tempParam = 
    [{
      name: 'video', filename: 'vid.mp4', data: RNFetchBlob.wrap(videoUri.uri), type:'video/mp4'
    },
    {
      name:'user_id',data:'1060'
    }]

    console.log(JSON.stringify(tempParam))

    RNFetchBlob.fetch('POST', url, {
      'Content-Type' : 'application/octet-stream',
    },tempParam)
    .uploadProgress((written, total) => {
      var perc = ((((written / total)*100).toFixed(2))*1) +  "%" 
      console.log('uploaded', perc)

      Platform.OS === 'android' 
      ?  ToastAndroid.show('Uploaded..'+perc.toString(), ToastAndroid.SHORT)
      : Alert.alert('Uploaded..'+perc.toString())
    })
    .then((response) => response.json())
    .then((responseJson) => {
      if(!responseJson.error){
        this.setState({loading_status:false})

                    Platform.OS === 'android' 
                  ?  ToastAndroid.show('Video added successfully', ToastAndroid.SHORT)
                  : Alert.alert('Video added successfully')

                }
                else{

                  Platform.OS === 'android' 
                  ? ToastAndroid.show(responseJson.message, ToastAndroid.SHORT)
                  : Alert.alert(responseJson.message)
                }
    })
    .catch((err) => {
      this.setState({loading_status:false})
      Platform.OS === 'android' 
                            ?   ToastAndroid.show("Try Again", ToastAndroid.SHORT)
                            : Alert.alert("Try Again !")
      console.log(err);
    })


, где videoUri.uri - это URI видео, взятого из

react-native-image-picker

Во время загрузки видео после загрузки какой-либо части видео выдается ошибка,

stream was reset: PROTOCOL_ERROR

Как я могу решить эту проблему? Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 16 октября 2019

тип контента POST-запроса от приложения / json к multipart / form-data

multipart / form-data используется для загрузки файлов MIME-совместимого представления, таких как изображения и видеофайлы, исвязанные метаданные один запрос POST.

'Content-Type' : 'multipart/form-data'

посмотрите мой рабочий пример

export const uploadVideo = file => RNFetchBlob.fetch(
  'POST',
   url,
  {
    'Content-Type': 'multipart/form-data',
  },
  [{
    type: 'video/mp4',
    name: 'file',
    filename: 'vid.mp4',
    data: RNFetchBlob.wrap(file.uri),
  }],
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...