我被Reaction应用程序中的文件上传过程困住了.在这款应用中,我正在try 将本地视频文件上传到Google Cloud Storage
.
我从以下位置获取输入文件:
<input type={`file`} accept=".mp4" onChange={VideoSelectChangeFunc} />
在VideoSelectChangeFunc
中,我通过以下方式获取输入文件的本地URL:
let file = URL.createObjectURL(event.target.files[0])
然后我在axios
中使用它来发送到云
export const UploadVideo = async (file, signedurl, asset_uuid) => {
let resultState = { state: '', data: {} };
await axios({
method: 'put',
url: signedurl,
data: file,
headers: {
'Content-Type': 'application/octet-stream',
},
}).then(function (response) {
resultState.state = 'success';
resultState.data = response.data
}).catch(function (error) {
resultState.state = 'error';
resultState.data.message = error.message;
window.toastr.error(error.message);
console.log(error)
})
return resultState;
}
我在云上看到的是:
blob:http://localhost:3000/9b650cbf-8b49-440b-9e90-da6bdb5d392a
这只是字符串形式的文件的本地URL,而不是视频本身,当我将其复制粘贴到浏览器上时,我可以看到视频.我搜索了一下情况,发现'Content-Type': 'blob'
个可以解决这个问题.但是,我们正在判断CORS Policy
中的标头,因此它必须是'Content-Type': 'application/octet-stream'
.有没有办法解决这个问题?