2016-12-03 3 views
0

Я хочу отправить двоичный файл (например, изображение) в angularjs $ http.post.

У меня есть данные в объекте bufferjs 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: [] 
      } 
     ) 
Смежные вопросы