[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт скачивания
Dave
Как сделать скрипт скачивания. Уже есть сама ссылка, есть возможность её куда угодно вставить. Нужен скрипт который скачает файл по этой ссылке (файл .txt)



Спустя 1 час, 27 минут, 7 секунд (13.11.2010 - 20:37) inpost написал(а):
А чем прямая ссылка на файл не подходит???
<a href=""> ???

Спустя 3 минуты, 30 секунд (13.11.2010 - 20:41) sharki написал(а):
по идее он откроет содержимое файла *.txt в окне браузера

Спустя 1 минута (13.11.2010 - 20:42) DmitryOpalev написал(а):
Цитата
<a href="">

laugh.gif laugh.gif
Я где-то видел, но не помню...

Спустя 11 минут, 23 секунды (13.11.2010 - 20:53) Dave написал(а):
Ну что разве нет такого способа?)

Спустя 8 минут, 18 секунд (13.11.2010 - 21:01) DmitryOpalev написал(а):
Есть! laugh.gif

Спустя 1 минута, 41 секунда (13.11.2010 - 21:03) Dave написал(а):
Поделитесь)

Спустя 28 минут, 10 секунд (13.11.2010 - 21:31) DmitryOpalev написал(а):
 if (!$file[1]) header("Content-Type: application/octet-stream");
else header("Content-Type: ".$file[1]);
header("content-disposition: attachment; filename=\"".$file[2]."\"");


В $file[1] хранится тип файла, в $file[2] — его имя.
Взял с какого-то сайта, сам проверить не могу... проверьте...

Спустя 1 минута, 39 секунд (13.11.2010 - 21:33) DmitryOpalev написал(а):
Или вот еще:
http://www.phppro.ru/viewtopic.php?f=15&t=8
Вроде подробно описано...

Спустя 8 минут, 54 секунды (13.11.2010 - 21:42) Dave написал(а):
Цитата (DmitryOpalev @ 13.11.2010 - 18:31)
 if (!$file[1]) header("Content-Type: application/octet-stream");
else header("Content-Type: ".$file[1]);
header("content-disposition: attachment; filename=\"".$file[2]."\"");


В $file[1] хранится тип файла, в $file[2] — его имя.
Взял с какого-то сайта, сам проверить не могу... проверьте...

В каком смысле тип? там будет несколько типов (расширений) .gt3 .gt4 .gt5 .gt6
Вобще о файле известно только имя файла.gt3

Спустя 7 минут, 3 секунды (13.11.2010 - 21:49) DmitryOpalev написал(а):
Значит .gt3... вообще эти переменные (из массива) можно поменять обычными переменными

Спустя 2 минуты, 58 секунд (13.11.2010 - 21:52) inpost написал(а):
<a href="download.php?file=text.zip">TEXT</a>

И сам файл download.php:
header('Content-type: application/zip'); //передаём какого типа файл, в нашем случае это .zip архив.
header('Content-Disposition: attachment; filename="'.$_GET['file'].'"');
readfile($_GET['file']);


В обязательном порядке указать правильный content-type, можно все типы в гугле найти очень просто! Главное, теперь, только защиту, и всё =)

Спустя 2 минуты, 58 секунд (13.11.2010 - 21:55) DmitryOpalev написал(а):
laugh.gif

Спустя 2 минуты, 53 секунды (13.11.2010 - 21:58) inpost написал(а):
DmitryOpalev
и??

Спустя 3 минуты, 43 секунды (13.11.2010 - 22:01) DmitryOpalev написал(а):
Не, ну ты пришел, так все разрулил smile.gif

Спустя 44 минуты, 1 секунда (13.11.2010 - 22:45) Dave написал(а):
Всё ок, работает! Спс. А вот только что за защита?
if (!preg_match("|^[\d]+$|", $id)) {
exit ("Неверный формат запроса! Проверьте URL!");
}
Хватит?

Спустя 9 минут, 54 секунды (13.11.2010 - 22:55) inpost написал(а):
Не думаю. Ты даёшь человеку право закачать твой сайт, а это уже дыра. Надо ограничивать права на какую-то папку или расширение.

Спустя 17 минут, 31 секунда (13.11.2010 - 23:13) Dave написал(а):
В каком смысле мой сайт? А как именно ограничить? У меня все файлы для скачки находятся а папке files

Спустя 41 минута, 21 секунда (13.11.2010 - 23:54) inpost написал(а):
Смотря как передаёшь! Если методом GET, то человек подделает ссылку на любой другой файл и скачает его.

Спустя 12 минут, 28 секунд (14.11.2010 - 00:06) Dave написал(а):
Пускай качает, у меня кроме gt файлов там ничего не будет, а остальные (5 файлов в корне) php скрипты, по которым все люди могут ходит, это разделы сайта

Спустя 20 минут, 47 секунд (14.11.2010 - 00:27) inpost написал(а):
download.php?file=../index.php - вот и получил доступ к твоему php файлу. Сделай проверку на расширение файла, и если это php - блокируй.

Спустя 1 час, 9 минут, 41 секунда (14.11.2010 - 01:37) Dave написал(а):
Цитата (inpost @ 13.11.2010 - 21:27)
download.php?file=../index.php - вот и получил доступ к твоему php файлу. Сделай проверку на расширение файла, и если это php - блокируй.

Скачивание index.php в данном случае всё равно не получится) Так как
if (!preg_match("|^[\d]+$|", $id)) {
exit ("Неверный формат запроса! Проверьте URL!");
}
заблокировал доступ, только что проверил. У меня в GET запросе передавать можно только цифры. А в довнлоад файле он уже вычисляет по цифрам ссылку на файл... вот так вот :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.