![](/img/trans.png)
[英]Broken Image link while uploading canvas base64 image to parse.com
[英]Upload Base64 Video to Parse.com - Javascript
我正在尝试将我的base64视频数据保存到Parse.com。 我对图像使用了相同的技术,效果很好,但是由于某些原因,视频将无法保存。 数周以来,我一直在尝试调试此问题,但没有成功。 我以这种方式工作图像后基本上复制了技术/代码...使用base64我认为它或多或少都可以相同...
我的视频数据如下所示:
data:video/3gpp;base64,AAAAGGZ0eXAzZ3A0AAAAAGlzb2.....
正在保存的视频只有〜56kb-〜1mb。 保存到文件限制为10mb的Parse.com。 我检查了我的数据,一切似乎都正确,直到我尝试将文件保存到Parse.com为止,这会返回错误400。
POST https://api.parse.com/1/files/myVideo.3gp 400 (Bad Request)
在我的XHR回复中:
{"code":107,"error":"base64 field cannot be decoded"}
任何人都对为什么它不起作用有任何见解:
var videoFile = new Parse.File('myVideo.3gp', {
base64: _params.videoData
});
// save the parse file
videoFile
.save({
success: function(resp) {
window.ERROR = "Success: " + resp;
},
error: function(e, r) {
window.ERROR = "Error: " + e + " : " + r;
}
})
.then(function() {
_params.videoData = null;
// create object to hold caption and file reference
var videoObject = new ImageObject();
// set object properties
videoObject.set('title', _params.title);
videoObject.set('user', Parse.User.current());
videoObject.set('img', videoFile);
if (_params.location !== undefined) {
videoObject.set('location', new Parse.GeoPoint(_params.location.latitude, _params.location.longitude));
}
// save object to parse backend
videoObject
.save()
.then(function(resp) {
console.log('Posted Video', resp);
// Add User QtdPhoto
defer.resolve(resp);
});
}, function(error) {
console.log('Error', error);
defer.reject(error);
});
HTTP状态代码400表示您的请求格式不正确 。 您可以复制粘贴从DevTools或Firebug发出的实际HTTP请求吗?
另一方面,如果在完全相同的长度后请求被切断。 这可能是由您这边的防火墙/路由器引起的。 您在公司网络的背后吗?
更新:
作为对作者评论的回应。 有两种方法可以将文件保存到Parse.com:
第一种方法
我更喜欢使用HTML5文件字段为我处理文件。 它允许用户选择一个文件。
var videoFile = document.getElementById("your-file"); if (videoFile.files.length > 0) { var parseFile = new Parse.File("myVideo.3gp", videoFile.files[0]); } parseFile.save().then(function() { // Success }, function(error) { // Error: alert() or log() console.log(error); });
<input id="your-file" type="file" />
第二种方法:
像这样发出POST请求或在此处阅读文档。
curl -X POST \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: video/3gp" \
--data-binary '@your-local-file.3gp' \
https://api.parse.com/1/files/videoFile.3gp
只需在您的AJAX请求中进行等效的卷曲即可。 是否可以在本机环境中进行编码? 或者,您是在为PhoneGap,Ionic等编码吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.