Возможно ли клиенту скачать файл напрямую с сервера в обход сервера-посредника?
Проблема следующая: сервер через апи достаёт файлы с другого сервера по "заказу" клиента, закачивает его себе и затем отдаёт их клиенту.
Вопрос: можно ли (если да, то как) убрать в этой цепи звено, где сервер-посредник сперва закачивает себе файл, а затем отдаёт его клиенту? То есть чтобы сервер только авторизировался, получил токен, а клиент с токеном себе скачал напрямую сам через браузер.
Cейчас схема получения файла такая:
$respJWT=$this->get_cookies(); // токен
$url = 'https://app.ru/api/documents/'.$doc_id.'/file';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array($respJWT));
curl_setopt($ch, CURLOPT_VERBOSE, true);
$fp = fopen($name, 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
$data= curl_exec($ch);
curl_close($ch);
И далее сервер перенаправляет на страницу скачивания этого файла $name.
Ответы (1 шт):
Автор решения: WinterSilence
→ Ссылка
нужно сразу возвращать клиенту файл, что-то вроде
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="book.pdf"');
echo curl_exec($ch);
curl_close($ch);