У моего брата Joe есть
сайт, а там есть раздел File archive, где пользователи могут скачивать файлы (скрипт был написан с нуля мной). Вы зайдите под логином guest и паролем guest и попробуйте что-нибудь скачать. У нас файлы не качаются менеджерами закачек, такими как FlashGet и ReGet, а качается сам файл "download.php", который является своеобразным посредником закачки, данный файл перенаправляет Вас на необходимный файл с помощью header ("location: url"). Вся информация о необходимом закачиваемом файле хранится в БД, откуда "download.php" и берет URL. Листинг файла "download.php":
PHP код:
<?php
session_start ();
include ("includes/common.php");
if (session_is_registered ("allowed_user") && $HTTP_SESSION_VARS ["allowed_user"] == true) {
$query_file = mysql_query ("SELECT * FROM `files` WHERE (`id` = '" . $_REQUEST ["id"] . "')", $link);
$result_file = mysql_fetch_array ($query_file, MYSQL_ASSOC);
mysql_query ("UPDATE `files` SET `downloads` = `downloads` + 1 WHERE (`id` = '" . $_REQUEST ["id"] . "')", $link);
$query_new_id = mysql_query ("SELECT `id` FROM `stat` ORDER BY `id` DESC LIMIT 0, 1", $link);
$result_new_id = mysql_fetch_array ($query_new_id, MYSQL_ASSOC);
$new_id = $result_new_id ["id"] + 1;
mysql_query ("INSERT INTO `stat` (`id`, `who`, `what`, `when`) VALUES ('" . $new_id . "', '" . $HTTP_SESSION_VARS ["name"] . "', '" . $result_file ["name"] . "', '" . gmdate ("Y-m-d H:i:s") . "')");
header ("Location: http://" . $result_file ["path"]);
}
?>
Файлы не качаются с помощью менеджеров закачек, зато качается броузерами.
Я никак не пойму, почему файлы не скачиваются, по-моему в этом виноваты header'ы.