2017-06-15 75 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: '' 
}; 

希望這有助於。

相關問題