Я занимаюсь этим довольно долгое время и не могу найти ясный ответ/способ решить мою проблему.Загрузите файл из http response body
Ситуация такова: я отправляю запрос на отправку на сервер. Ответ содержит двоичный файл pcap в его теле. Как загрузить его в виде файла.
Мой упрощенный код:
...
this.downloadPcap = function(timestamp){
var start = timestamp-10;
var end = timestamp+10;
var requestData = {"start": start, "end": end};
$http.post(serverUrl, requestData);
}
Это вызвано щелчком, где я получаю метку времени какого-либо события, а сервер создает файл PCAP от 10 секунд до и после точного события.
Получаю ответ с длинным двоичным кодом. также:
Content-Length: 134772
Content-Type: применение/PCAP
Теперь мне сказали, что если заголовок будет таким образом, браузер будет автоматически начать загрузку ответ в виде файла. Это не так.
Так что я немного читал о Blob и FileSaver, но я чувствую, что должен быть более простой способ загрузки файлов, которые создаются динамически.
Может кто-нибудь указать мне в каком-то направлении? Нет ли более простого способа, чем включение большего количества библиотек?
Заранее спасибо
Попробуйте этот ответ http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-download-not-through-server#answer-18197341 – jcubic
Вы пробовали добавить заголовок Content-Disposition? 'Content-Disposition: attachment; filename = "testfile.someext" ' – marekful
Я бы предложил форму с iframe, но после углового сообщения json вместо данных формы вам нужно будет использовать не очень простой метод ajax -> blob url. – Musa