我是本机反应的新手。我想将视频上传到服务器。如何使用RNfetchBlob上传视频?
有人可以帮助我吗?谢谢。
答案 0 :(得分:2)
distinguishable word
答案 1 :(得分:0)
有两种方法都可以尝试。两者都应该起作用。另外,如果使用Express Node.js后端,则将后端配置为处理Blob数据或表单数据,然后将multer或Express-formidable中间件添加到该特定路由。
在前端,这两种方法均有效 1。
`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);
})
}`
2。
`async startRecording() {
this.setState({ recording: true });
// default to mp4 for android as codec is not set
const { uri, codec = "mp4" } = await this.camera.recordAsync();
this.setState({ recording: false, processing: true });
const type = `video/${codec}`;
const data = new FormData();
data.append("video", {
name: "mobile-video-upload",
type,
uri
});
try {
await fetch(ENDPOINT, {
method: "post",
body: data
});
} catch (e) {
console.error(e);
}
this.setState({ processing: false });
}`