以本机方式上传视频



有没有办法在 react native 中将视频上传到服务器?

我已经研究了 github 上的 react-native-uploader 插件,但如果该插件可能的话,它没有提供任何关于视频上传的指导。

只需使用 fetch 即可上传

let formData = new FormData();
formData.append("videoFile", {
    name: name.mp4,
    uri: video.uri,
    type: 'video/mp4'
});
formData.append("id", "1234567");
try {
    let response = await fetch(url, {
        method: 'post',
        headers: {
            'Content-Type': 'multipart/form-data',
        },
        body: formData
    });
    return await response.json();
}
catch (error) {
    console.log('error : ' + error);
    return error;
}

这是另一个答案,在RN 0.57.8中使用rn-fetch-blob。

postVideo = (video,url) =>  {
    RNFetchBlob.fetch('POST',url, {
         'content-type': 'multipart/form-data',
         "Accept":"multipart/form-data",
         'access-token': AuthToken.token, //token from server
      },[
        //the value of name depends on the key from server
        {name: 'video', filename: 'vid.mp4', data: RNFetchBlob.wrap(video.uri) },
      ]).then(response => response.json())
        .then(response => {
            if (response.status === 'success') {
                alert("Upload success");
                this.props.navigation.navigate('publish');
            } else {
               alert(response.msg);
            }})
         .catch((err) => {
             alert(err);
        })
    }

是的,这是可能的。

  • 您必须运行 React Native 0.45.0 或更高版本,它确实支持从相机胶卷访问视频。
  • 您必须通过调用 CameraRoll.getPhotos(params) 从相机胶卷接收对图像/视频访问的引用(文档中有更多内容(
  • 然后,使用 RNUploader.upload(...) 将资产发送到您的服务(您需要在之前链接 lib!

最新更新