Ho fatto ricerche per un po 'di tempo e non riesco a trovare una risposta chiara/un modo per risolvere il mio problema.Download di un file dal corpo di risposta http
La situazione è questa: sto inviando una richiesta di posta a un server. La risposta contiene il file binario di un file pcap nel suo corpo. Come faccio a scaricarlo come file.
Il mio codice semplificato:
...
this.downloadPcap = function(timestamp){
var start = timestamp-10;
var end = timestamp+10;
var requestData = {"start": start, "end": end};
$http.post(serverUrl, requestData);
}
Questo viene attivato con un click, in cui ottengo il timestamp di qualche evento, e il server crea un file PCAP da 10 secondi prima e dopo l'evento esatto.
Ricevo una risposta con un lungo binario. anche:
Content-Length: 134772
Content-Type: application/pcap
Ora mi è stato detto che se l'intestazione sarà in questo modo, il browser si avvia automaticamente il download la risposta come un file. Non è così.
Quindi ho letto molto poco su Blob e FileSaver, ma mi sembra che ci debba essere un modo più semplice per scaricare i file che vengono creati dinamicamente.
Qualcuno può indicarmi una direzione? Non c'è un modo più semplice di includere più librerie?
Grazie in anticipo
Prova questa risposta http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-download-not-through-server#answer-18197341 – jcubic
Hai provato ad aggiungere l'intestazione Content-Disposition? 'Content-Disposition: attachment; nomefile = "testfile.someext" ' – marekful
Avrei suggerito un modulo con un iframe ma dal momento post angolare json invece dei dati del modulo, dovrai usare il metodo ajax -> blob url non così facile. – Musa