php rest api генерирует PDF в виде blob, как получить файл на фронтенде без сохранения на сервере. Мое решение
public function getPdf($request)
{
//генерируем PDF
return array('file' => base64_encode($res));
}
Фронтенд (angular2)
getPdf(data) {
return this.api.post('/pdf', data)
.map(res => atob(res.file))
.subscribe(
data => {
FileSaver.saveAs(new Blob([data], {type: 'application/pdf'}), "BusinessCard.pdf");
},
err => console.error(err)
);}
Похоже проблема с кодировкой на фронте, пробовал вместо atob использовать решение с MDN, base64js... выдает ошибку URIError: URI malformed
Если декодировать вручную через https://www.base64decode.org/, с настройкой UTF-8 то все получается правильно
Попробуйте base64 urlsafe decode
atob(res.file.replace(/_/g, '/').replace(/-/g, '+'))
Сборка персонального компьютера от Artline: умный выбор для современных пользователей