Veröffentlicht 21. Dezember 200420 j 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
22. Dezember 200420 j Eigentlich nicht. Schau mal da. Das Beispiel funktioniert bei mir. http://www.phpbuilder.com/columns/florian19991014.php3?page=3 Frank
22. Dezember 200420 j Wie hast du die Datei denn in die Datenbank geschrieben? Vielleicht ist dabei der Fehler aufgetreten.
22. Dezember 200420 j Müßte es nicht echo $line['file']; heißen? Denn laut php.net ist exit -> void exit( void ) php.net -> exit() Gruß Andreas
22. Dezember 200420 j 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?
23. Dezember 200420 j 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().
23. Dezember 200420 j 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.
23. Dezember 200420 j 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
23. Dezember 200420 j 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.