Возникла задача — передать скрипту параметры, собрать изображение на сервере, после чего отдать юзеру, но не для просмотра, а для скачки. С помощью JS собираем запрос. Полученое из скрипта:
1 |
document.location = url; |
А в самом скрипте:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $file = 'some/path/to/file.jpg'; $mimeType = rtrim( exec('file '.escapeshellarg($file) .' -b --mime-type')); if ($mimeType == "text/plain"){ $mimeType="application/octet-stream"; } header('Content-Description: File Transfer'); header('Content-Type: '.$mimeType); 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)); ob_clean(); flush(); readfile($file); exit; ?> |
Подсмотрено здесь.