Hallo,
ich habe beim Download von Dateien ein Problem.
Ich habe Dateien in den Formaten rtf, doc, pdf, xls, ppt, zip, jpg, avi und mpeg. Ich speichere beim upload die Dateien auf der Festplatte und den Pfad in einer Datenbank. Wenn ich mir nun eine Datei herunterladen möchte klicke ich auf den entsprechenden Link und es erscheint das Downloadfenster.
Wähle ich hier "speichern" speichere ich die Datei auf meiner Festplatte und kann sie mir anschließend ansehen.
Gehe ich jedoch auf öffnen, funktioniert dies nur bei den Word-Dateien. Bei allen anderen Formaten bekomme ich Fehlermeldungen (c:\...\...xls wurde nicht gefunden).
Mein Dowloadskript:
Kann mir jemand erklären wo mein Fehler liegt?
Ich verwende übrigens Windows XP und den Internet Explorer 6.0.
ich habe beim Download von Dateien ein Problem.
Ich habe Dateien in den Formaten rtf, doc, pdf, xls, ppt, zip, jpg, avi und mpeg. Ich speichere beim upload die Dateien auf der Festplatte und den Pfad in einer Datenbank. Wenn ich mir nun eine Datei herunterladen möchte klicke ich auf den entsprechenden Link und es erscheint das Downloadfenster.
Wähle ich hier "speichern" speichere ich die Datei auf meiner Festplatte und kann sie mir anschließend ansehen.
Gehe ich jedoch auf öffnen, funktioniert dies nur bei den Word-Dateien. Bei allen anderen Formaten bekomme ich Fehlermeldungen (c:\...\...xls wurde nicht gefunden).
Mein Dowloadskript:
PHP-Code:
$res = mysql_query("SELECT material.m_art, material.m_upload FROM material WHERE material.material_ID='$mID'",$db);
$row = mysql_fetch_array($res);
if(strrchr($row[m_upload], '.')==".rtf"){
$typ="rtf";
}
if(strrchr($row[m_upload], '.')==".doc"){
$typ="doc";
}
if(strrchr($row[m_upload], '.')==".pdf"){
$typ="pdf";
}
if(strrchr($row[m_upload], '.')==".xls"){
$typ="xls";
}
if(strrchr($row[m_upload], '.')==".ppt"){
$typ="ppt";
}
if(strrchr($row[m_upload], '.')==".zip"){
$typ="zip";
}
if(strrchr($row[m_upload], '.')==".jpg"){
$typ="jpg";
}
if(strrchr($row[m_upload], '.')==".avi"){
$typ="avi";
}
if(strrchr($row[m_upload], '.')==".mpeg"){
$typ="mpeg";
}
$dateiendung=$typ;
$basedir = "../../upload";
$datei = $row[m_upload];
$dateiname = sprintf("%s/%s", $basedir, $datei);
switch($dateiendung)
{
case 'doc':
$mime = "application/msword";
break;
case 'jpg':
$mime = "image/jpeg";
break;
case 'xls':
$mime = "application/vnd.ms-excel";
break;
case 'pdf':
$mime = "application/pdf";
break;
case 'rtf':
$mime = "text/rtf";
break;
case 'fla':
$mime = "application/x-shockwave-flash";
break;
case 'ppt':
$mime = "application/vnd.ms-powerpoint";
break;
case 'zip':
$mime = "application/zip";
break;
case 'avi':
$mime = "video/x-msvideo";
break;
case 'mpeg':
$mime = "video/mpeg";
break;
case 'mp3':
$mime = "audio/x-mpeg-3";
break;
}
header("Content-type: $mime");
header("Content-Disposition: attachment; filename=\"$datei\"");
readfile($dateiname);
Ich verwende übrigens Windows XP und den Internet Explorer 6.0.
Kommentar