react-native - 使用 rn-fetch-blob react native 将视频上传到服务器
问题描述
您好,我正在尝试使用 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
我该如何解决这个问题?请帮帮我
解决方案
从 application/json 到 multipart/form-data 的 POST 请求的内容类型
multipart/form-data 用于通过单个 POST 请求上传 MIME 兼容表示的文件,例如图片和视频文件,以及相关元数据。
'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),
}],
);
推荐阅读
- flutter - Fluter 跨平台网页版和移动版
- azure - 汇总上的自定义聚合函数
- php - 如何阻止我的搜索中的某些词直接转到产品 - Woocommerce
- reactjs - 在 React 中,为什么我对 useEffect 对象的更改没有反映在浏览器中?
- css - 如何在boostrap vue的b-tabs中显示一个按钮?
- javascript - chart.js 在图表区域内隐藏网格线但保留 y 轴边框
- python - 熊猫,在合并两个数据框和某些列的值时不会结转
- haskell - 折叠函数中的字符串连接顺序
- makefile - Makefile 中支持的隐式变量
- ios - 从 xcode 中的 SwiftUI 视图更新 Firestore 数据不起作用