Я хочу загрузить 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>
Мой контроллер в ангуляржс:
vm.downloadHref = env.api + 'page/export';
function downloadLmTreeCsv() {
myService.downloadCsv(vm.downloadHref, $filter('date')(vm.startDate, 'dd-mm-yyyy H:i:s'));
}
Сервис (там же):
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);
}
}
Суть в том, что когда я нажимаю на кнопку ничего не происходит, может я использую неправильный метод или еще что? Если я пытаюсь скачать файл через Постман, то всё нормально, но через фронт вообще ничего... В чем может быть проблема? Вот мой респонс в Симфони:
$response = new StreamedResponse();
$response->setCallback($csv);
$response->headers->set('Content-Type', 'text/csv');
return $response;
Еще я пробовал использовать библиотеку FileSaver, но результат аналогичный:
function downloadCSV($http, ENV) {
$http.get(`${ENV.api}/export`,{responseType:'arraybuffer'}).success(function(data) {
var file = new Blob([data], { type: 'text/csv' });
saveAss(file, 'filename.csv');
});
}
UPDATE Метод заработал, вот только неправильно, теперь закачка начинается когда страница загружается, а при нажатии на кнопку ничего не происходит...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Приветствую, я человек стремящийся устроится джуном в какую-нибудь компанию или студию, прошу совета у васДабы не углубляться во все это...
Я новичок самоучка в программировании, хочу создать нормальный планировщик задач, но при этом одним из главных требований является то что...
Имеется готовый шаблон PDFНужно подставлять значения в нужные места по типу ФИО, дата рождение, адрес и тд