将Base64视频上载到Parse.com-Javascript
我正在尝试将base64视频数据保存到Parse.com。我对图像使用了同样的技术,效果很好,但由于某些原因,视频无法保存。我已经尝试调试这个问题好几个星期了,但没有成功。我基本上复制了技术/代码后,我有这样的图像工作方式。。。使用base64,我想它或多或少都是一样的工作 我的视频数据如下所示:将Base64视频上载到Parse.com-Javascript,javascript,angularjs,cordova,parse-platform,video-capture,Javascript,Angularjs,Cordova,Parse Platform,Video Capture,我正在尝试将base64视频数据保存到Parse.com。我对图像使用了同样的技术,效果很好,但由于某些原因,视频无法保存。我已经尝试调试这个问题好几个星期了,但没有成功。我基本上复制了技术/代码后,我有这样的图像工作方式。。。使用base64,我想它或多或少都是一样的工作 我的视频数据如下所示: data:video/3gpp;base64,AAAAGGZ0eXAzZ3A0AAAAAGlzb2..... 正在保存的视频只有~56kb-~1mb。保存到Parse.com,该文件限制为10mb。
data:video/3gpp;base64,AAAAGGZ0eXAzZ3A0AAAAAGlzb2.....
正在保存的视频只有~56kb-~1mb。保存到Parse.com,该文件限制为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:
var videoFile=document.getElementById(“您的文件”);
如果(videoFile.files.length>0){
var parseFile=new Parse.File(“myVideo.3gp”,videoFile.files[0]);
}
parseFile.save().then(函数()){
//成功
},函数(错误){
//错误:警报()或日志()
console.log(错误);
});代码>
“出于某种原因而不保存”表示您没有进行太多调试(如果有的话)。你应该。而且,是的,它可能与图片相同,只是视频要大得多,而base64编码会使它们更大。如果浏览器没有崩溃,您可能会达到服务器端限制。请将文档与您提供给文件构造函数的内容进行比较。你的数据属性似乎与文档不匹配。你也可以在这里添加你的\u参数的值吗?在我的chrome开发工具的响应部分,我发现了更多的错误:{“code”:107,“error”:“base64字段无法解码”}也许我在某个地方犯了错误。有没有更好的方法在parse上存储视频?我的应用程序是一个社交视频共享应用程序,解析似乎是一个正确的选择,到目前为止,一切都很简单和有效。视频不是很容易。我正在为PhoneGap编码。这就是我已经准备好的一切。我也不能仅仅使用输入HTML5元素,因为我正在使用ngCordova和用户的相机捕捉它。