2015-12-18 121 views
0

上傳正確圖片時出現問題。文本文件上傳正常。圖片上傳,但當我從谷歌存儲打開它然後圖像不顯示(即使我下載它)。Google雲端存儲正確圖片上傳

在前端,我從計算機獲取文件並使用FileReader()將文件轉換爲二進制文件。在服務器上,我正在處理請求。

代碼:

GoogleApi.prototype.uploadFile = function(file, cb) { 
var token = this.token; 
var privateInfo = Meteor.settings.private.GOOGLE; 
console.log(file);     //checked all info before sending. All is ok 

try { 
    var res = HTTP.post("https://www.googleapis.com/upload/storage/v1/b/my_bucket_srohyi/o", { 
     headers: { 
      "Content-Type": file.type, 
      "Content-Length": file.size, 
      Authorization: "Bearer" + " " + token 
     }, 
     params: { 
      project: privateInfo.project_id, 
      uploadType: "media", 
      name: file.name, 

     }, 
     content: file.data  //using FileReader.readAsBinaryString() 
    }); 
    return cb(null, res); 
} 
catch (err) { 
    cb(err); 
} 

}

我的工作meteor.js,但我認爲這不是一顆流星問題。
希望有人能幫助我。
也對不起,如果我的英語不好

+0

我一直在上傳時指定'?uploadType = media' - 不知道在你忽略它時會發生什麼,就像你看起來那樣。此外,你的代碼是在app引擎上運行的嗎?您提供的JS似乎在瀏覽器中運行,不涉及應用程序引擎 - 如果是這樣,請刪除無關標籤。 –

+0

我有代碼中的uploadType(params對象),如果你沒有指定它,請求將返回一個錯誤。 – Kendirom

+0

啊,對不起,我沒有注意到你正確地指出了它,我的壞。 –

回答

0

問題解決

只需要從它轉換一個文件中的陣列緩存器(未二進制字符串),並創建一個Uint8Array。

相關問題