kills Geschrieben 21. Dezember 2004 Geschrieben 21. Dezember 2004 Hallo zusammen, ich habe eine Tabelle mit folgender struktur: Feld Typ Null Standard id int(10) Nein id_content int(10) Nein 0 name varchar(255) Nein description text Nein file longblob Nein nun möchte ich die dateien die ich als blobs gespeichert habe ( sind alles pdf`s) zum download anbieten. so hab ich das gedacht: if ( empty( $_GET['id'])) { trigger_error( 'missing parameter "id"', E_USER_ERROR); } $id = $_GET['id']; $sql = 'SELECT file,name FROM files WHERE id ='. $id; $result = mysql_query( $sql); $line = mysql_fetch_assoc( $result); $filename = $line['name']; header ('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header ('Content-Description: Download der Datei "'. $filename .'"'); header ('Content-Type: application/octet-stream'); // header ('Content-Length: ' . filesize($file)); header ('Content-Disposition: attachment; filename='. $filename); exit( $line['file']); Der Download startet auch und ich kann die Files herunterladen, aber leider sagt mir mein AdobeReader das er die files nicht öffnen kann.... Fehlermeldung des Readers: Adobe Readerkonnte "test.pdf" nicht öffnen, da der Dateityp nicht unterstützt wird oder die Datei beschädigt ist... Muss ich die Binärdaten des Blobs irgendwie konvertieren o.ä.? Woran könnts noch liegen? Gruß, Markus
robotto7831a Geschrieben 22. Dezember 2004 Geschrieben 22. Dezember 2004 Eigentlich nicht. Schau mal da. Das Beispiel funktioniert bei mir. http://www.phpbuilder.com/columns/florian19991014.php3?page=3 Frank
etreu Geschrieben 22. Dezember 2004 Geschrieben 22. Dezember 2004 Wie hast du die Datei denn in die Datenbank geschrieben? Vielleicht ist dabei der Fehler aufgetreten.
kills Geschrieben 22. Dezember 2004 Autor Geschrieben 22. Dezember 2004 ich habe die BLOBs mit phpMyAdmin in die DB geladen
robotto7831a Geschrieben 22. Dezember 2004 Geschrieben 22. Dezember 2004 Vielleicht ist in phpMyAdmin ein Bug. Frank
aeri Geschrieben 22. Dezember 2004 Geschrieben 22. Dezember 2004 Müßte es nicht echo $line['file']; heißen? Denn laut php.net ist exit -> void exit( void ) php.net -> exit() Gruß Andreas
etreu Geschrieben 22. Dezember 2004 Geschrieben 22. Dezember 2004 Müßte es nicht echo $line['file']; heißen? Denn laut php.net ist exit -> void exit( void ) php.net -> exit() Gruß Andreas die($line['file']) sollte es auch machen. Ist das wirklich das Problem?
kills Geschrieben 23. Dezember 2004 Autor Geschrieben 23. Dezember 2004 mein Manual sagt: zu exit: exit (PHP 3, PHP 4 ) exit -- Output a message and terminate the current script Description void exit ( [string status]) void exit ( int status) zu die: die die -- Equivalent to exit() Description This language construct is equivalent to exit().
etreu Geschrieben 23. Dezember 2004 Geschrieben 23. Dezember 2004 Wie gesagt, das deutsche online-manual sagt was anderes: http://de2.php.net/manual/de/function.exit.php Andererseits steht im englischen (http://de2.php.net/manual/en/function.exit.php) das: Note: The die() function is an alias for exit(). Ich würde sagen einfach mal mit die() und/oder echo ausprobieren.
aeri Geschrieben 23. Dezember 2004 Geschrieben 23. Dezember 2004 Sonst bau Dir doch einen kleinen Upload der beliebige Dateien in den blob pushen kann. Dann siehst Du ob PHPMyAdmin Probleme damit hat. Übrigens hatten die alten mySQL Front Versionen auch Probleme mit Blob's, besonders in zusammenhang mit Dumbs und Exportierfunktionen. Gruß Andreas
kills Geschrieben 23. Dezember 2004 Autor Geschrieben 23. Dezember 2004 ich hab den Fehler gefunden. im output-buffer waren wohl nocht irgendwelche Header drinne die das ganze zerstört haben. ich hab einfach vor diesem script ein ob_clean() gemacht und schon passts
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden