Hallo,
kann mir bitte jemand bei meinem Problem helfen?
Ich lese aus einem Verzeichnis Dateien aus und möchte die als Link zum Download ausgeben. Das Funktioniert soweit auch schon. Jetzt möchte ich das erstellungsdatum der Datei (sind PDF Dateien) auslesen und nach diesem Datum absteigend sortieren.Habe dazu auch schon hier Hilfe erhalten. Aber was jetzt nicht mehr geht ist der Download. Steh grad echt im Wald... ...
Obwohl meiner Meinung nach der Pfad Stimmen sollte bekomme ich die Meldung "Die Datei wird nicht gefunden"....
Poste hier am besten mal ein bischen Code zum besseren Verständnis:
session_start();
include("../config.php");
logincheck();
$uid = $_SESSION['uid'];
$pwd = $_SESSION['pwd'];
$result = mysql_query("select * from users where uid='$uid' and pwd='$pwd'");
$users = mysql_fetch_assoc($result);
############ Download starten ############
if(isset($_GET['download']))
{
$file_p = "./private/".$users['ah_kdnr']."/p/".$_GET['download'];
$file_u = './private/'.$users['ah_kdnr'].'/u/'.$_GET['download'];
if(!preg_match("/^[a-zA-Z0-9-_\W]*\.[a-zA-Z0-9_]*$/", $_GET['download']) || $_GET['download']==".htaccess" || !file_exists($file_p))
{
echo "<Script>alert('Die Datei wurde nicht gefunden!')</script>";
echo "<Script>history.back();</script>";
exit();
}
if(!preg_match("/^[a-zA-Z0-9-_\W]*\.[a-zA-Z0-9_]*$/", $_GET['download']) || $_GET['download']==".htaccess" || !file_exists($file_u))
{
echo "<Script>alert('Die Datei wurde nicht gefunden!')</script>";
echo "<Script>history.back();</script>";
exit();
}
session_write_close();
######### Herunterladen
header("Pragma: no-cache");
header("Expires: -1");
header("Cache-Control: no-store, no-cache, must-revalidate, post-checked=0, pre-checked=0");
header("Content-Type: application/force-download");
header("Content-Type: application/pdf");
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header('Content-Length: ' . filesize($file));
header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . "GMT");
header('Content-Disposition: attachment; filename="'.$_GET['download'].'"');
header("Content-Transfer-Encoding: binary");
readfile($file);
exit();
}
############ Downloads auflisten ############
//Standardtext
$filebuffer_p = "Derzeit sind leider keine Downloads verfügbar!";
$filebuffer_u = "Derzeit sind leider keine Downloads verfügbar!";
//Dateiendungen ausschließen:
$hidefiles = "htaccess|php|php3|php4|php5| ";
//Dateien aus Ordner überprüfen
$dir_p = opendir('./private/'.$users['ah_kdnr'].'/p/');
$dir_u = opendir('./private/'.$users['ah_kdnr'].'/u/');
$new_files_p = array();
$new_files_u = array();
while($file_p = readdir($dir_p))
{
if($file_p!='..' && $file_p!='.' && !preg_match("/\.(".$hidefiles.")$/i", $file_p))
{
$new_files_p[] = $file_p;
}
}
closedir($dir_p);
while($file_u = readdir($dir_u))
{
if($file_u!='..' && $file_u!='.' && !preg_match("/\.(".$hidefiles.")$/i", $file_u))
{
$new_files_u[] = $file_u;
}
}
closedir($dir_u);
###########Datum sortieren##############
foreach(glob("./private/".$users['ah_kdnr']."/p/*") as $path_p) {
$docs_p[$path_p] = filemtime($path_p);
} arsort($docs_p);
foreach(glob("./private/".$users['ah_kdnr']."/u/*") as $path_u) {
$docs_u[$path_u] = filemtime($path_u);
} arsort($docs_u);
//Alle Downloads auflisten
if(count($new_files_p)>=1)
{
$filebuffer_p = "";
foreach ($docs_p as $path_p => $docs_p)
{
$filebuffer_p .= '<tr><th><a href="'.BASEHREF.'/useraccount/index.php?download='.basename($path_p).'">'
.preg_replace(array("/\.[0-9A-Za-z_]*$/", "/[\.|-|_]/"), " ", ($path_p))
.'</a></th><td>'.gmdate("d. M. Y H:i:s", $docs_p).'</td><td class="currency">Größe: '.filesize($path_p).' KB '.'</td></tr>';
}
}
if(count($new_files_u)>=1)
{
$filebuffer_u = "";
foreach ($docs_u as $path_u => $docs_u)
{
$filebuffer_u .= '<tr><th><a href="'.BASEHREF.'/useraccount/index.php?download='.basename($path_u).'">'
.preg_replace(array("/\.[0-9A-Za-z_]*$/", "/[\.|-|_]/"), " ", basename($path_u))
.'</a></th><td>'.gmdate("d. M. Y H:i:s", $docs_u).'</td><td class="currency">Größe: '.filesize($path_u).' KB '.'</td></tr>';
}
}
Alles anzeigen
Im HTML wird das dann über
<?php echo $filebuffer_p; ?>
und
<?php echo $filebuffer_u; ?>
aufgerufen.
Es wird mir auch alles vernünftig angezeigt....aber irgendwas stimmt mit dem Link nicht.....
Hoffe das ist soweit verständlich...bin noch neu hier...
Bin dankbar für jede Hilfe