2017-06-15 73 views
0

我试图在我的React Native应用中将FireFox存储中的.mov文件存储在Firebase存储中。 我将文件转换为blob并将其上传到Firebase。该文件正在存储在Firebase中,类型为video/mov,所以一切看起来很酷。.mov文件在Firebase中以文本形式存储

enter image description here

然而,当我尝试下载该文件时,它被下载为文本文件,现在看着它,它看起来像它被存储为文本文件。

enter image description here

上为什么发生这种情况有什么想法?我在手机上录制的视频正在保存到带有.mov扩展名的磁盘上。

下面是相关代码

this.camera.capture({mode: Camera.constants.CaptureMode.video}) 
    .then((data) => { 
     console.log(data) 
     const video = data.path; 
     this.props.dispatch(saveVideoPath(video)); 
     let rnfbURI = RNFetchBlob.wrap(video); 
     Blob 
     .build(rnfbURI, { type : 'video/mov'}) 
     .then((blob) => { 
      console.log(blob); 
      storageRef.child('video/' + '12345').put(blob, { contentType : 'video/mov' }) 
      .then((snapshot) => { 
       const downloadURL = snapshot.downloadURL 
       this.props.dispatch(saveVideoDownloadURL(downloadURL)); 
       console.log('Uploaded a blob or file!'); 
      }).catch(error => console.log(error)); 
     }) 
    }) 
+1

您是否尝试用其他应用程序与视频应用程序打开该文件? –

+0

@AlexMamo我通过firebase downloadURL下载它,但它作为文本文件下载,所以我无法打开它w /视频应用程序。我假设它会下载.mov扩展名,然后我会使用Quicktime或者其他东西 – maxwellgover

+0

您可以在任何程序中打开任何文件,而不是它看起来不错,但仍然可以打开它。如果您刚刚打开电影播放器​​并在其中使用打开命令并指向该文件,它是否正确加载视频? –

回答

1

你的问题是,你正在试图打开与在video player代替一个file viewer保存的视频文件,这就是为什么你看到这些符号。要解决此问题,请更改打开电影文件的应用程序并尝试选择Quicktime。正如我在屏幕截图中看到的,您的文件类型为video/mov。所以这是一个视频文件而不是文本文件。

希望它有帮助。

+0

当我尝试时,它说文档无法打开。 QuickTime Player无法以“数据”格式打开文件。 – maxwellgover

+1

你确定你的文件具有'.mov'扩展名吗?如果不是,请上传具有相同名称的文件,并确保文件具有正确的'.mov'扩展名。试试这个例子:命名你的文件:'movie.mov'它工作吗? –

+0

你试过用我的例子吗? –

0

我也有同样的问题。解决方案是当文件扩展名为'.mov'时,将contentDisposition属性设置为空字符串。

所以我的元数据看起来是这样的:

var metadata = { 
      contentType: 'video/quicktime', 
      name: 'videoName.mov', 
      contentDisposition: '' 
}; 

希望这有助于。

相关问题