Задать вопрос
@MegaPuxapb

Автозагрузка файла после отправки формы?

Как сделать авто-загрузку файла после отправки формы?
гугл говорит через window.location.href = "какой то файл";
Но происходит открытие, а не загрузка.
  • Вопрос задан
  • 237 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Можно отдать блоб через js. Как-то так: https://jsfiddle.net/Stalk/22swsnba/

Можно и через смену location, но сервер должен отдать правильные заголовки (пример для pdf)
Content-Type: application/pdf
Content-Disposition: attachment; filename="filename.pdf"
Ответ написан
@AlexRas
Делаете скрипт с заголовками:

Например php:
$fileUrl = isset($get['file']) ? $get['file'] : null;
$filePath = ($fileUrl) ? $_SERVER['DOCUMENT_ROOT'] . '/' . $fileUrl ? null;

if (file_exists($filePath)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file)); 
    header('Content-Transfer-Encoding: binary');
    header('Connection: Keep-Alive');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($filePath);
}

И уже на него делаете редирект location.href = "скрипт.php?file=image/img.jpg";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы