|
|
|
| как бы так сделать чтобы при нажатии на ссылку, которая ссылается на картинку, не открывалась эта картинка а появлялся бы диалог с предложением сохранить файл? | |
|
|
|
|
|
|
|
для: skinny
(18.05.2010 в 16:58)
| |
header("Content-Disposition: attachment; filename=gggg.jpg");
header("Content-Type: application/x-force-download");
|
| |
|
|
|
|
|
|
|
для: skinny
(18.05.2010 в 16:58)
| | header("Content-Type: application/force-download; name=\"".$_GET['file']."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". filesize($_GET['file'] ."");
header("Content-Disposition: attachment; filename=\"".$_GET['file']."\"");
readfile($_GET['file']);
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
$_GET['file'] - путь к файлу..
Запихни это в свой файл... и сделай проверку, к примеру:
if(is_file($_GET['file'])){
.... //Код
} | |
|
|
|
|
|
|
|
для: Tonik992
(18.05.2010 в 17:02)
| | Чтоб совсем понятно было:
<?php
if(is_file($_GET['file']) && $_GET['file']=="index.php") {
header("Content-Type: application/force-download; name=\"".$_GET['file']."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". filesize($_GET['file']));
header("Content-Disposition: attachment; filename=\"".$_GET['file']."\"");
readfile($_GET['file']);
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
}
?>
<a href="?file=index.php">GET FILE</a>
|
НО!!
Использование GET и POST запросов для передачи пути к файлу очень не безопасны.. Поэтому следует делать тщательную проверку, чтобы пользователь ничего не нужное не смог скачать, кроме как твоих изображений | |
|
|
|
|
|
|
|
для: Tonik992
(18.05.2010 в 17:11)
| | круто
тока я ничё не понял :)
можно как нибуть расжевать как в книжке? | |
|
|
|
|
|
|
|
для: skinny
(18.05.2010 в 17:38)
| | Здесь скрипт передает сам себя.
<?php
// Проверяем существование файла is_file() и совпадение
// его с index.php, чтобы в GET-параметр file не подставили что-то другое
if(is_file($_GET['file']) && $_GET['file']=="index.php") {
// Отправляем HTTP-заголовок, передающий название файла, оно будет
// предложено в качестве имени по умолчанию при сохранении
header("Content-Type: application/force-download; name=\"".$_GET['file']."\"");
header("Content-Transfer-Encoding: binary");
// Передаем длину файла, вычиляя её при помощи filesize()
header("Content-Length: ". filesize($_GET['file']));
// Отправляем HTTP-заголовок, передающий файл клиенту
header("Content-Disposition: attachment; filename=\"".$_GET['file']."\"");
// Передаем содержимое файла
readfile($_GET['file']);
// Запрещаем кэширование
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
// Обязательно останавливаем скрипт, иначе к файлу-изображению
// добавится ссылка
exit();
}
?><a href="?file=index.php">GET FILE</a>
|
| |
|
|
|