2016-12-03 33 views
0

我想在一個angularjs $ http.post中發送一個二進制文件(例如圖片)。

我有一個nodejs Buffer對象中的數據,它是一個實現Uint8Array。

我想:

$http.post("https://content.dropboxapi.com/2/files/upload", 
       data, 
       { 
        headers: { 
         'Content-Type': 'application/octet-stream', 
         'Authorization': 'Bearer ' + dSvc.GO.onlineStorage.D1.accessResponse.access_token, 
         'Dropbox-API-Arg': JSON.stringify({ 
          "path": path, 
          "mode": "overwrite", 
          "mute": true 
         }) 
        } 
       } 
      ) 

但是當數據到達服務器,是更大,圖像已損壞。

如果我的出發點是一個緩衝區(Uint8Array),我如何從那裏獲得一個可以在$ http.post的主體中發送的字段?

回答

0

DOH,我只需要添加transformRequest:[],這樣angularjs就不會對數據產生影響。

$http.post("https://content.dropboxapi.com/2/files/upload", 
      data, 
      { 
       headers: { 
        'Content-Type': 'application/octet-stream', 
        'Authorization': 'Bearer ' + dSvc.GO.onlineStorage.D1.accessResponse.access_token, 
        'Dropbox-API-Arg': JSON.stringify({ 
         "path": path, 
         "mode": "overwrite", 
         "mute": true 
        }) 
       }, transformRequest: [] 
      } 
     )