PHP Download-Script einer Datei
Webdoktor
- php
0 fastix®0 fastix®0 Erledigt.
fastix®
Hallo zusammen
Ich habe eine kleine Frage und zwar habe ich ein Download Script welches mir eine JPEG Datei herunterlädt. Das geht auch alles schön und gut d.h. wenn ich das Script starte kommt der Speichern Dialog wo ich die Datei dann auf meinen PC speichern kann. Wenn ich die Datei aber anschauen will z.B. im Programm von Window "Windows Bild und Faxanzeige" oder aber auch in Photoshop kommt die Fehlermeldung dass das Bild ungültig ist.
An was liegt das? Stimmt was mit den Headers nicht in meinem Script?
Wenn ich die Datei vom Server mit FTP herunterlade kann ich sie ganz normal anzeigen.
Freue mich riesig auf eure Antworten und danke schon im Voraus für eure Bemühungen.
Hier das Script:
//Dateidownload
$fileDir = CONF_PHOTO_DIR.$photo_subdir;
$fileName = $photo_filename.'-'.$row_photos->photo_id.$photo_mime_types[$row_photos->photo_mime]['ext'];
$fileString = $fileDir.'/'.$fileName;
$filesize = filesize($fileString);
// make sure the file exists before sending headers
if(!$fdl=@fopen($fileString,'r')){ die("Datei nicht gefunden!"); }
else {
header("Cache-Control: private");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=". urlencode($fileName) ."");
header("Content-Type: ".$row_photos->photo_mime."");
header("Content-Length: ".$filesize);
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
sleep(1);
readfile($fileString);
Grüsse Marco
Moin!
Gibt es einen Link wo man sich anschauen kann, was wirklich ankommt?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Hallo Fastix
Vielen Dank für Deine prompte Antwort. Ich kann Dir gerne ein Mail senden mit dem Foto was defintiv ankommt.
Wäre das möglich?
Liebe Grüsse
Marco
Moin!
Wäre das möglich?
Ja. Aber nicht sinnvoll.
Ich will mit wget -d URL _genau_ nachsehen, _was_ der Server _wie_ liefert.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
Hier ein paar Änderungen:
//Dateidownload
$fileDir = CONF_PHOTO_DIR.$photo_subdir;
$fileName = $photo_filename.'-'.$row_photos->photo_id.$photo_mime_types[$row_photos->photo_mime]['ext'];
$fileString = $fileDir.'/'.$fileName;
$filesize = filesize($fileString);// make sure the file exists before sending headers
if (! file_exists($fileString)) {
die("Fatal: Die Datei $fileString ist nicht vorhanden.");
}
if (! is_readable($fileString)) {
die("Fatal: Die Datei $fileString ist nicht lesbar. (Rechte?)");
}
header("Cache-Control: private");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=". urlencode($fileName) ."");
header("Content-Type: ".$row_photos->photo_mime."");
header("Content-Length: ".$filesize);
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
#sleep(1);
readfile($fileString);
file_get_contents($fileString);
>
> Grüsse Marco
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
--
[Des fastix kleines CMS](http://www.fastix.org/fastix-cms/)
Moin!
[x] Erledigt. Es lag an einem Leerzeichen aus einer includierten Datei.
Tip: die zu includierenden Dateien immer in der ersten Zeile mit
<?php
beginnen und das schließende
?>
weglassen.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix