|
|
|
| Хочу сделать счетчик на download файлов со своей странички. Для этого написал отдельный php-файл, куда происходит ссылка при попытке download-а. А в качестве параметра передаю относительный путь к нужному файлу. (?file=…)
<?php
$file=$_GET["file"];
if (file_exists($file))
{
list($name,$ext)=explode(".",$file);
$ext="dnl";
//$download=implode(list($name,$ext),".");
$download=$name.".";
$download=$download.$ext;
$arrayer=@file($download); // Прочитать содержимое файла в масссив
$counter=$arrayer[0]; // Извлечь первый (и единственный) элемент
++$counter; // Увеличить счетчик обращений
$fh=fopen($download,"w");
if(flock($fh, LOCK_EX) )
{
// Записываем значение счётчика
fwrite($fh,$counter);
flock($fh, LOCK_UN);
}
fclose($fh);
// ВОТ ТУТ НАДО КАК-ТО ОТПРАВИТЬ ФАЙЛ КЛИЕНТУ
Header("Location: $file"); // Я ПОПРОБОВАЛ ИЗМЕНИТЬ РЕСУРС, НО ТАК НЕЛЬЗЯ
}
else
{
print "<html> <body> <H1>Ошибка! Запрошенный файл не найден. </H1> </body> </html>";
}
?>
Вопрос такой - а как заставить файл пересылаться? Я попробовал перекинуть ссылку на ресурс через Header("Location: $file"); , но такой метод не работает для файлов типа exe или rar (Сервер пишет: You don't have permission to access /Goonies.exe on this server.), а для php-файлов все работает. | |
|
|
|
|
|
|
|
для: Odin Kg
(13.09.2004 в 00:45)
| | Попробуйте вот так
<?php
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=\"../files/file.zip\"'>";
?>
|
| |
|
|
|
|
|
|
|
для: Odin Kg
(13.09.2004 в 00:45)
| | Попробуйте HTML кодом передать заголовок, и не location, а reflesh:
<?php
echo "<html><head>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL= $file'>";
echo "</head></html>";
?>
|
PS Посмотрите так же права доступа к файлам, имеет ли доступ ваш скрипт к ним... | |
|
|
|
|
|
|
|
для: cheops
(13.09.2004 в 09:14)
| | Спасибо за помощь.
Действительно, после применения Ваших советов положение улучшилось. Однако вместе со скачиванием, на экран "вылетает" чистая белая страница (а мне нужно , чтобы содержание сохранялось), и вдобавок по-прежнему не хотят скачиваться exe-файлы (c rar проблема пропала). Нет ли какого-нибудь другого метода? Может мне поменять принцип? Как бы Вы сделали такой счетчик. | |
|
|
|
|
|
|
|
для: Odin Kg
(13.09.2004 в 15:48)
| | Чуть не забыл. А как смотреть права доступа? (я пользуюсь XP и локальным Appachem). | |
|
|
|
|
|
|
|
для: Odin Kg
(13.09.2004 в 15:50)
| | Если у вас XP, то права доступа тут не причём, скорее это уже настройки Internet Explorer - посмотрите Свойства обозревателя -> Безопасность -> Другой
Переключатели должны находится в следующих положениях:
Для "Загрузка файлов" - Разрешить
Для "Запуск программ и файлов в окне IFRAME" | |
|
|
|
|
|
|
|
для: cheops
(14.09.2004 в 16:07)
| | Спасибо за помощь.
Мне удалось самому найти решение - дело было в настройках апача, у которого exe-файл считался испольняемым cgi-скриптом. После исправления этого факта прекрасно заработало мое первое решение - через Location.
Еще раз спасибо за внимательное отношение к моим вопросам. | |
|
|
|