Я пытаюсь принудительно загрузить php. отсюда: http://www.iwantanimage.com/animals/animals01.html . Нажмите на изображение, и на следующей странице предлагаются варианты трех форматов.
это мой php-код
<?php header('Content-disposition: attachment; filename=sterling02md.jpg'); header('Content-type: image.jpg'); readfile('sterling02md.jpg'); header('Content-disposition: attachment; filename=sterling02lg.jpg'); header('Content-type: image.jpg'); readfile('sterling02lg.jpg'); header('Content-disposition: attachment; filename=sterling.jpg'); header('Content-type: image.jpg'); readfile('sterling02.jpg'); ?>
Единственное изображение, которое загружает, однако, – sterling02md.jpg. Как исправить код, чтобы пользователь мог загрузить выбранный файл? Спасибо
Недопустимые типы контента. Вы должны указать тип mime файла, который будет image/jpeg
. не image.jpg
.
Кроме того, вы не можете принудительно загрузить 3 отдельных файла в одном HTTP-запросе. Хотя некоторые браузеры поддерживают несколько файлов, вы должны инкапсулировать каждый из них в отдельный блок тела MIME, который вы не делаете.
Либо предоставить .zip копию этих 3 файлов для одной загрузки, либо предоставить 3 отдельные ссылки для загрузки, по одному файлу на ссылку.
Задайте выбор в строке запроса download.php?option=1
if (!isset($_REQUEST['option']) { //redirect away } if ($_REQUEST['option'] == 1) { header(...) //sterling02md.jpg }
Вы можете попробовать что-то вроде того, где ссылки на изображение downalod.php?img=sterling02
$image = isset($_GET['img']) ? $_GET['img'] : "noimage" ; $image .= ".jpg"; header('Content-disposition: attachment; filename='.$image); header('Content-Type: image/jpeg'); readfile($image);
Но если вы хотите принудительно загрузить
header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Transfer-Encoding: binary "); header('Content-disposition: attachment; filename='.$image); readfile($image);