2014-11-05 14 views
8

Sto utilizzando AngularJS per interagire con un webservice RESTful, utilizzando Restangular per astrarre le varie entità esposte. Alcune di queste entità sono immagini o file, quindi devo essere in grado di utilizzare l'azione post di Restangular per inviare sia dati binari che campi di testo all'interno della stessa richiesta.File e dati POST restangolari

Come è possibile utilizzare Restangular per inviare dati con immagini caricate o file, a un webservice restful in una singola richiesta POST?

+0

Per inviare un file tramite una richiesta POST Ajax è necessario fare un form multipart submit. Questa risposta potrebbe aiutarti a iniziare: http://stackoverflow.com/questions/6974684/how-to-send-formdata-objects-with-ajax-requests-in-jquery In base a questo, stai inviando un modulo , la parte difficile sarà assicurarsi che $ http non stia impostando il tipo di contenuto sbagliato. Dai un'occhiata a Restangular withHttpConfig option https://github.com/mgonto/restangular#using-local-http-configuration, o magari impostando l'intestazione Content-Type direttamente con un customPost – guzart

risposta

2

Ho appena risposto a una domanda molto simile here che spiega come utilizzare una direttiva del modello di file e creare un oggetto formData che viene quindi pubblicato su un'API.

Utilizzando Restangular anziché $ http, l'unica parte diversa è ovviamente la modalità di esecuzione del post.

Ecco come il post è fatto usando restangular:

Restangular.one('api/url/to/endpoint') 
.withHttpConfig({transformRequest: angular.identity}) 
.customPOST(fd, '', undefined, {'Content-Type': undefined})