Всем привет. Есть код, который делает запрос к api, ответ парсится в формат json. Примерный код ответа:
{
success: true,
data: {
articles: [
[
'name': 'Test name',
'body': 'Lorem it...',
'file': 'http:://domain.com/api/donwload/articles/12345.pdf'
],
[...]
]
}
}
Всё это добро рендерится на странице.
Пользователю необходимо скачать файл, но при прямом переходе
по ссылке она не сработает, поскольку api
требует заголовки api-key
и api-user
. Решил попробовать создать контроллер посередине, который отправляет запрос(с нужными заголовками) на получение файла:
$response = $this->sendApiRequest(true, [], '/library/test/download');
return $response;
Код Api
:
$file = Storage::disk('downloads')->path('library/e8ebaf574813227adaec1559309870/dc5a4360bd40b3393ae9/Yor6gpYzC8gEPOBogvzb8F84H1gB3znIQxqNOlCs.pdf');
return response()->download($file);
Клиенту в браузере выводятся примерно такие кракозябры(байт-код):
%PDF-1.6 %���� 10514 0 obj <>stream h���]���y �Ҁov/�d����z�64�+A�c�<��&�ɯ_���9��gz�l� ��GoU��^�ɗu��i]�K�L�/�� �˺�M�u���˚�T���ּ�h���k�zٖ��(]�}�K�]�����=��j��iޏh���Z�c��\�cΰ�����b�f;�9����o��RRێy㼗Q�c��ǒ�v�=�K �eK���~�w SMp�.1�9�$�x�i�m��2�1���1��k�^�4-e�uO�5�%�\����)����la����2��p�=m�y����2o����������
Как мне правильно обработать ответ и дать возможность клиенту загрузить файл? Или же есть более элегантные способы решения для загрузки файлов? Буду рад любым советам.
Для меня работает это, но в переменную $file Вам нужно положить содержимое файла (не просто путь к файлу):
return new Response($file, 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="'.$fileName.'"'
]);
Была у меня ещё когда-то проблема с кодировкой содержимого файла, эту проблему тогда решил iconv(). Но он поможет только в том случае, если Вы знаете какая кодировка на входе.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Реализую отправку zip файла на почту PHPMailer'ом, используя smtpgmail
У меня в базе хранится html-код и мне нужно выполнить поиск по содержимому тегов, не затрагивая сами тегиНапример, при поиске script не выводить...