całość mechanizmu stanowią dwa pliki: test.php i download.php
pierwszy wyświetla zawartość drugi uruchamia ściaganie pliku.
test.php jest następujący:
<?php
$dir = "D:sercomfotki";
function printDir($dir)
{
if(!$fd) return false;
while (($file = readdir($fd)) !== false){ if($file != "." && $file != ".." && $pos === false){
echo("<a href=\"download.php?name="); echo("$file\" class='style3'>$file</a><br />"); }
}
}
printDir($dir)
?>
dowload.php taki:
<?php
$filesPath = "./";
function securityCheck($name)
{
$wyr = "^[a-z0-9_-]+(.[a-z0-9_-]+)*$";
return eregi($wyr, $name); }
function send($fileName, $filePath)
{
$fd = fopen($filePath.$fileName,"r");
header("Content-Type: application/octet-stream"); header("Content-Length: $size;"); header("Content-Disposition: attachment; filename=$fileName");
}
if(isSet($_GET['name'])){ if(!securityCheck($_GET['name'])){
echo('Nie ma takiego pliku na serwerze!'); }
else{
send($_GET['name'], $filesPath);
}
}
else{
echo('Nie ma takiego pliku na serwerze!'); }
?>
Problem opisałem dokładnie na początku. Pliki są wyświetlane jako lista.
Po kliknięciu pojawia się akcja okienko wybory czy otworzyć plik czy zapisać.
Jak klikam otworzyć to niby probuje się otworzyć ale plik się nie pobiera i wyświetla błąd natomast jak klikam zapisz plik sie zapisuje ale jako zero bajtowy, czyli nie pobiera się właściwie.