ich versuche einen BLOB aus meiner Datenbank auszugeben.
Ich habe in meiner Datenbank eine Binär-Datei + den Dateinamen.
Auf einer JSP Seite habe ich einen Formular Button, mit dem man die Datei runterladen soll.
Das Formular verweist auf mein Servlet.
Im Servlet wird der BLOB wieder zu einer Datei und über RESPONSE zurückgegeben.
Grob funktioniert es auch, jedoch ist die "neue" Datei (die, die ich vom Servlet bekomme) kleiner als die orginal Datei.
Bzw, bei *.doc Dateien bekomme ich nur noch kryptische Zeichen angezeigt.
Was foobar meint ist, warum du nicht die Datei "wie sie ist" auf dem Server ablegst und in der DB lediglich den Dateinamen ablegst, der auf die Datei zeigt...
Was foobar meint ist, warum du nicht die Datei "wie sie ist" auf dem Server ablegst und in der DB lediglich den Dateinamen ablegst, der auf die Datei zeigt...
Jedoch läuft das ganze auf einem Ubuntu (Linux) Server und wenn ich was in meinem Projekt änder, wird erst das ganze Projekt vom Server gelöscht und neu aufgespielt. Und somit sind meine ganzen hochgeladenen Dateien weg.
Deswegen speicher ich sie in der Datenbank. Dort gehen Sie nicht verloren.
ich persönlich bin kein guter Freund von BLOB's aber nun muss ich in den sauren Apfel beißen :/
Ich verstehe jetzt nicht wirklich, was es da mit dem Löschen auf sich hat. Vielleicht solltest du lieber da ansetzen, als so nen kruden Workaround zu basteln.
Jedoch läuft das ganze auf einem Ubuntu (Linux) Server und wenn ich was in meinem Projekt änder, wird erst das ganze Projekt vom Server gelöscht und neu aufgespielt. Und somit sind meine ganzen hochgeladenen Dateien weg.
Das mußt du mir mal etwas genauer erklären. Du meinst, wenn du die Applikation deployst wird der gesamte Ordner im Tomcat gelöscht?
Warum legst du die Dateien dann nicht woanders hin?
Das ist ja auch in Ordnung, aber du mußt die Anwendungdaten doch nicht im Projektverzeichnis speichern. Leg dir einfach einen Ordner an in dem du die Files speicherst.
Aber ich komm dann nicht an den neuen Ordner dran...
Der neue Ordner muss ja in meinem Projekt liegen, dass ich dran komm, aber dann wird er beim nächsten deploy gelöscht...
Dann weißt du doch das der User eine Datei lesen will mit der Id 1. Über die Id holst du dir aus der DB den Filenamen und liest dann über das Dateisystem die Datei ein und gibst sie zurück. Das ist alles.