AngularJs скачать CSV с помощью Symfony2 StreamedResponce

Я пытаюсь загрузить CSV-файл, когда нажимаю кнопку на моей странице, например:

<span ng-click="downloadCsv()" class="table-settings__control">
<ng-include src="'app/icons/icon.html'" class="table-settings__control-icon">
</ng-include>
{{"table.menu.export" | translate}}
</span>

Мой метод контроллера в AngularJs:

vm.downloadHref = env.api + 'page/export';
function downloadLmTreeCsv() {
myService.downloadCsv(vm.downloadHref, $filter('date')(vm.startDate, 'dd-mm-yyyy H:i:s'));
}

Мое обслуживание в AngularJs:

function downloadCsv(httpPath,date) {
var fileName = generateCsvFileName(date);

$http.get(httpPath,{
responseType: 'arraybuffer'
}).success(function (data, status, headers) {
var textCsv = 'text/scv';
headers = headers();
var filename = fileName + '.' + 'csv';
var contentType = headers['content-type'] || textCsv;

try {
var blob = new Blob([data], {
type: contentType
});
if (navigator.msSaveBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob;
if (saveBlob === undefined) {
throw 'Not supported';
}
saveBlob(blob, filename);
}

}

Но когда я пытаюсь нажать кнопку на моей странице, ничего не происходит, может быть, я использую неправильный метод? Когда я пытаюсь скачать файл, используя только бэкэнд, все работает нормально (через Почтальон). Мой ответ в Symfony:

$response = new StreamedResponse();
$response->setCallback($csv);
$response->headers->set('Content-Type', 'text/csv');

return $response;

Не могли бы вы, пожалуйста, помочь решить эту проблему … И если у вас есть другой способ загрузки CSV-файлов, не могли бы вы показать его. Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector