|
| |
|
|
| |
для: Buhen
(23.08.2007 в 09:15)
| | | Почему GET параметры не срабатывают??? | |
| |
|
|
| |
|
|
| |
для: Yuriev
(22.08.2007 в 16:42)
| | | Короче я решил сделать так:
Вот ссылка на скачивание файлов:(она находится в скрипте downloads.php)
<?
echo "<A class='normlink' HREF='downloads_result.php?cat_id=".$_GET['cat_id']."&id_download=".stripslashes($row_download->id_download)."'>";
echo "Загрузить";
$file = $row_download->download_file;
$category = $row_download->category_file;
echo "</A>";
?>
|
значения в ссылке правильно подсталяются то есть например ссылка такого примерно вида получается:
http://arkcs.ru/downloads_result.php?cat_id=2&id_download=35
Вот сам файл котрый обрабатывает ссылку:
downloads_result.php
<?
include_once ("includes/actions.php");
connect_db();
if ((isset($_GET['cat_id'])) AND ($_GET['cat_id'] != "") AND (isset($_GET['id_download'])) AND ($_GET['id_download'] != ""))
{
if((is_numeric($_GET['id_download'])) AND (is_numeric($_GET['cat_id'])))
{
$query="SELECT * FROM downloads,cat WHERE id_download=".$_GET['id_download']." AND ".$_GET['id_download']."=".$_GET['id_download']."";
$result = mysql_query ($query);
if (mysql_errno()!= 0)
{
echo "<p class='navig'>Данный файл не существует</p>";
}
else
{
if (mysql_num_rows ($result) == 0)
{
echo "<p class='navig'>Данный файл не существует</p>";
}
else
{
$row = mysql_fetch_object($result);
$downloads_file = $row->downloads_file;
$download_file = $row->download_file;
$category_file = $row->category_file;
$downloads_file++;
$query = "UPDATE downloads SET downloads_file=$downloads_file WHERE id_download=".$_GET['id_download']."";
mysql_query($query);
$pathtofile="files/$category_file/$download_file";
header("Content-Type: ".filetype("$pathtofile"));
header("Content-Length: ".filesize("$pathtofile"));
header("Content-Disposition: attachment; filename=$pathtofile");
header("Content-type: application/force-download");
header("Content-type: application/octet-stream");
echo file_get_contents ("$pathtofile");
exit;
}
}
}
else
{
echo "ХАКЕР";
}
close_db();
?>
|
Но почему то пройдя по ссылке появляется только пустой документ а должна начинаться закачка! | |
| |
|
|
| |
|
|
| |
для: Buhen
(22.08.2007 в 15:04)
| | | >Кто нибудь знает почему так?
Ясновидящих нет и поэтому никто не знает как слеплен сайт.
Раз вставляете header в тело документа, отправляемого в браузер, скачиваемый файл и вставляется абракадаброй в тело документа.
Я ж вверху писал, что должно работать только одно: или код на скачивание или остальной код страницы.
>Но когда я например набираю в адресной строке:
http://адрес моего сайта/downloads.php то появляется диалогове окно для скачивания файла.
Так может надо изменить ссылки
с http://адрес моего сайта/index.php?page=downloads&cat_id=2&id_download=35
на http://адрес моего сайта/downloads.php?page=downloads&cat_id=2&id_download=35 | |
| |
|
|
| |
|
|
| |
для: Buhen
(22.08.2007 в 13:30)
| | | Кто нибудь знает почему так? | |
| |
|
|
| |
|
|
| |
для: sim5
(22.08.2007 в 12:53)
| | | Короче я понял. Почему то когда например я набираю файл в котором например такой код:
<?
$pathtofile="file.rar";
header("Content-Type: ".filetype("file.rar"));
header("Content-Length: ".filesize("file.rar"));
header("Content-Disposition: attachment; filename=file.rar");
header("Content-type: application/force-download");
header("Content-type: application/octet-stream");
echo file_get_contents ("file.rar");
?>
|
Когда в адресной строке набираю например
http://адрес моего сайта/index.php?page=downloads&cat_id=2&id_download=35 Не появляется диалогове окно для скачивания а файл просто открывается в виде иероглифов.
Но когда я например набираю в адресной строке:
http://адрес моего сайта/downloads.php то появляется диалогове окно для скачивания файла.
Кто нибудь объяснит в чем дело? | |
| |
|
|
| |
|
|
| |
для: Buhen
(22.08.2007 в 12:15)
| | | У вас проблемы не с кодом скачивания как таковым... Почему бы вам четко не разделить код на часть запроса на скачивание файла, на часть загрузки файла, и собственно вывод страницы. Уж извините, но у меня ощущение хаоса, может в нем и причина. | |
| |
|
|
| |
|
|
| |
для: Yuriev
(22.08.2007 в 11:39)
| | | А мне то как исправить свой код? | |
| |
|
|
| |
|
|
| |
для: Buhen
(20.08.2007 в 11:35)
| | |
<?
//Это Ваш файл index.php
if ($_GET['id_download']) {//запрошено скачивание
//выясняем какой запрошен файл
if ($_GET['id_download']==35) $path='sk-2006.rar';
if (!file_exists($path) $message = 'Передачи файла не будет по причине ненайденности';
else {
$type = 'application/x-rar';
$filename='sk-2006.rar';
header("Content-Type: \"$type\"");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Disposition: attachment; filename= \"$filename\"");
fpassthru(fopen($path,"rb"));
}
//если сюда выполнение кода дошло, значит запрошено скачивание и всё нормально
//и после exit ничего больше работать не должно
exit;
}
//если сюда выполнение кода дошло, значит запрошена страница, а не скачивание
//или запрошено скачивание, но файл не найден
//Далее идёт старый код страницы index.php
?>
<html>
<head>
<title>Моя страница</title>
</head>
<body>
<?
if ($message) echo $message;
?>
<a href="index.php?page=downloads&cat_id=2&id_download=35">Скачать файл sk-2006.rar</a>
</body>
</html>
|
Работает так.
Если запрошена индекс.пхп без параметра, то код на скачивание не выполняется, а грузится страница обычным образом.
Если запрошено скачивание и файл найден, то работает только код на скачивание, в браузере выскакивает окно на сохранение файла, страница не перегружается.
Если запрошено скачивание и файл не найден, то код на скачивание не работает, страница перегружается и на ней печатается сообщение о ненайденности. | |
| |
|
|
| |
|
|
| |
для: Buhen
(21.08.2007 в 15:20)
| | | Как же нету ? А куча HTML-кода идёт до скрипта скачивания файлов!!!
Должно выполняться или только код на скачивание или остальное!!!!!! | |
| |
|
|
| |
|
|
| |
для: sim5
(22.08.2007 в 10:57)
| | | Я понял что реальный файл вот создал для пробы на сайте у себя файл file.rar. Ну если так то тогда надо заменить строки где идет загрузка файлов вот так:
Но это дело не меняет. Файл открывается а должен скачиваться!
$row = mysql_fetch_object($result);
$downloads_file = $row->downloads_file;
$download_file = $row->download_file;
$category_file = $row->category_file;
$downloads_file++;
$query = "UPDATE downloads SET downloads_file=$downloads_file WHERE id_download=".$_GET['id_download']."";
mysql_query($query);
$pathtofile="files/$category_file/$download_file";
header("Content-Type: ".filetype("$pathtofile"));
header("Content-Length: ".filesize("$pathtofile"));
header("Content-Disposition: attachment; filename=$pathtofile");
header("Content-type: application/force-download");
header("Content-type: application/octet-stream");
echo file_get_contents ("$pathtofile");
exit;
|
| |
| |
|
|
|