2016-07-15 79 views
0

我可以使用解析服务器将图像文件上传到S3。 (通过从base64图像数据创建解析文件并在解析文件上执行save())如何创建并上传视频以解析服务器?

如何为视频文件做同样的事情?我正在使用打字稿在Ionic 2应用程序中使用parse-server js库。下面的代码适用于图像。

let file = new Parse.File("thumbnail", { base64: imageData }); 
     file.save().then(() => { 
      // The file has been saved to Parse. 
      console.log("File uploaded...."); 
     }, (error) => { 
      // The file either could not be read, or could not be saved to Parse. 
      console.log("File upload failed."); 
     }); 

在视频文件的情况下,我有从cordova媒体捕获回调接收到的文件位置。帮助我上传视频文件。

谢谢

+0

你到底是怎么解决的?我正在尝试新的Parse.File(“name”,{base64:data}),但它的抛出错误在同一行。 – InfinitePrime

回答

1

这是我的解决方案经过几天的研究。 它适用于iphone。
重要说明是这样的: data = data.replace(“quicktime”,“mov”);

var options = { limit: 1, duration: 30 }; 
navigator.device.capture.captureVideo(function(files){ 
    // Success! Audio data is here 
    console.log("video file ready"); 
    var vFile = files[0]; 
    console.log(vFile.fullPath); 
    ///private/var/mobile/Containers/Data/Application/7A0069EB-F864-438F-A685-A0DAE97F8B2D/tmp/capture-T0x144510b50.tmp.GfXOow/capturedvideo.MOV 
    self.auctionvideo = vFile.fullPath; //localURL; 
    console.log(self.auctionvideo); 

    var fileReader = new FileReader(); 
    var file; 
    fileReader.onload = function (readerEvt) { 
     var data = fileReader.result; 
     data=data.replace("quicktime","mov"); 
     console.log(data); 
     //data:video/quicktime;base64,AAAAFGZ0 
     console.log(data.length); 
     self.auctionvideo=data; 
     self.videofile = {base64:data}; 
    }; 
    //fileReader.reasAsDataURL(audioFile); //This will result in your problem. 
    file = new window.File(vFile.name, vFile.localURL, 
          vFile.type, vFile.lastModifiedDate, vFile.size); 
    fileReader.readAsDataURL(file); //This will result in the solution. 
    // fileReader.readAsBinaryString(file); //This will result in the solution. 
}, 
function(error){ 

}, 
options);