Как правильно организовать downloads.php

  • Автор темы -=GogA[qwe]=-
  • Дата начала

-=GogA[qwe]=-

Guest
Как правильно организовать downloads.php

Мне нужно организовать downloads.php
Проблема:
PHP:
<?php
$fname=$HTTP_GET_VARS["fname"];
$type=preg_replace("/(\w+).(\w+)/i","\\2",$fname);
header("Content-type: application/rar");
header("Content-Disposition: attachment; filename=downloads/wq.rar");
?>
Работает в mozille и iexplorer, а в опере не пашет:( - не качает qw.rar

$fname=$HTTP_GET_VARS["fname"];
$type=preg_replace("/(\w+).(\w+)/i","\\2",$fname);

на будущее, должен же скрипт как-то обрабатывать входящие переменны..

что не верно или как это поправить?
 

Lav

Guest
filename должен содержать только имя файла, без всяких левых каталогов.

Content-length настоятельно рекомендую проставить (filesize($fname)).

Вроде, должно сработать.

Где-то на форуме был комплект хидеров, которые гарантированно работают - попробуй найти (через disposition attachment) и поубирать по одному, пока не выяснишь, чего требует опера.
 

-=GogA[qwe]=-

Guest
Поискал disposition attachment, решил проблему...
Появилась новая:
часть downloads.php
PHP:
if ($_GET["fname"])
 {
  header("Content-type: application/".preg_replace("/(\w+).(\w+)/i","\\2",$fname));
  header("Content-Disposition: attachment; filename=".$_GET["fname"]."; Content-length: ".filesize($fname));

  $fname=$_GET["fname"];
  readfile("downloads/".$fname);
  // увеличиваем счетчик, храню в файле
 }
так вот, когда пользователь кликает на ссылку, появляется окно, при том счетчик уже увеличился... Можно ли как-нибудь это поправить, тоесть если пользователь всетаки качает файл, то увеличиваем....
 
Сверху