File upload Vimeo API:使用可恢复方法上载视频文件
我遵循VimeoAPI关于可恢复上传的指南()。 我在第一个请求后得到一个响应,但在第二个请求后得到一个File upload Vimeo API:使用可恢复方法上载视频文件,file-upload,vimeo-api,tus,File Upload,Vimeo Api,Tus,我遵循VimeoAPI关于可恢复上传的指南()。 我在第一个请求后得到一个响应,但在第二个请求后得到一个未定义的响应(步骤2.上传视频文件)。 该指南告诉我们将视频文件的二进制数据从upload.upload\u链接修补到URL。我正在使用readAsBinaryString()将视频文件转换为二进制数据(我也尝试了readAsArrayBuffer(),但结果相同。我可能做错了什么? 代码如下: var reader = new FileReader(); $.ajax({ 'url':
未定义的
响应(步骤2.上传视频文件)。
该指南告诉我们将视频文件的二进制数据从upload.upload\u链接修补到URL。我正在使用readAsBinaryString()
将视频文件转换为二进制数据(我也尝试了readAsArrayBuffer()
,但结果相同。我可能做错了什么?
代码如下:
var reader = new FileReader();
$.ajax({
'url': 'https://api.vimeo.com/me/videos',
'type': 'POST',
'headers': {
'Accept': 'application/vnd.vimeo.*+json;version=3.4',
'Content-Type': 'application/json',
'Authorization': 'bearer ' + accessToken
},
"data": JSON.stringify({
"upload" : {
"approach" : "tus",
"size" : fileSize
}
}),
'success': function (result) {
$.ajax({
'url': result.upload.upload_link,
'type': 'PATCH',
'headers': {
'Tus-Resumable': '1.0.0',
'Upload-Offset': 0,
'Content-Type': 'application/offset+octet-stream'
},
'data': reader.readAsBinaryString(fileContent),
'success': function (result) {
console.log(result)
}
});
}
});
我可以在我的ReactJs应用程序中实现此功能。看起来您缺少reader.onload()方法- 我正在将reader.readAsArrayBuffer的结果保存到state.binaryData。然后我将binaryData作为数据传递到我的axios/fetch请求中。它正在工作,我成功上传了视频
const reader = new FileReader();
const fileSize = e.target.files[0].size;
reader.onload = r => {
this.setState({ binaryData: r.target.result, fileSize });
};
reader.readAsArrayBuffer(e.target.files[0]);
我现在也在用同样的方法。我想当时调用Patch时,不确定文件的二进制数据是否已转换 因此,为了确保您必须将该调用放入
reader.onload
。因此,必须确保二进制数据
readAsBinaryString
已弃用。因此您可以使用readAsArrayBuffer
。