Speichern von mehreren Dateien (BLOBS)

Askadi

Mitglied
Hallo...

habe momentan folgenden Code der auch ohne Probleme funktioniert:

Java:
		if(fromPAGE.equals("download"))
		{
			// Unterlagen id holen
			int id = Integer.parseInt(request.getParameter("id"));
			
			try
			{
				DBDatei datei = DAO.selectDatei(con, id);
			
				Blob  b = datei.getDatei();

				response.setContentLength((int) b.length());
		        response.setHeader("Content-Disposition","attachment;filename="+datei.getDateiname());
		            
		        InputStream is = b.getBinaryStream();
		        ServletOutputStream os = response.getOutputStream();
		            
		        byte buf[] = new byte[(int) b.length()];
		            
		        is.read(buf);
		        
		        os.write(buf); 
	 			os.flush();      
		 		os.close();
	
			}
			catch(Exception e)
			{
				e.printStackTrace();	
			}	 		
		}

Ich hole mir eine Datei (BLOB) aus der Datenbank un kann diese dann speichern wo ich es will (z.B. Desktop)

Ich will nun das ganze erweitern bzw. eine neue funtkion in der ich mehrere Dateien gleichzeitig speichern kann.

Habe schon einiges versucht hab aber keine wirkliche Idee wie man das machen sollte.

Ich rufe eine andere DB Methode auf die mir eine Liste mit DBDatei zurück gibt aber wie kann ich dann diese speichern.

List<DBDatei> dateien = DAO.selectDateien(con,ids);

Hoffe das mir hier jemand weiterhelfen kann oder mich evtl weiterverlinken.

MfG
Askadi
 

Askadi

Mitglied
Funktioniert so leider nicht oder ich mache etwas falsch es wird leider nur der erste Listen Eintrag zum Download angeboten.

Java:
if(fromPAGE.equals("downloads"))
		{
			// Unterlagen id holen
			int ids[] = {21,61};
			List<DBDatei> dateien = DAO.selectDateien(con,ids);
			System.out.println(dateien.size());
			for(int i = 0;i < dateien.size();i++)
			{
				try
				{
					
				
					Blob  b = dateien.get(i).getDatei();

					response.setContentLength((int) b.length());
			        response.setHeader("Content-Disposition","attachment;filename="+dateien.get(i).getDateiname());
			            
			        InputStream is = b.getBinaryStream();
			        ServletOutputStream os = response.getOutputStream();
			            
			        byte buf[] = new byte[(int) b.length()];
			            
			        is.read(buf);
			        
			        os.write(buf); 
		 			os.flush();      
			 		os.close();
		
				}
				catch(Exception e)
				{
					e.printStackTrace();	
				}	 	
			}
			
		}

Ich weiss das es geht habe schon mehrfach Dateien gedownloadet diese wurden dann beim Speichern unter Dialog mit , getrennt angezeigt.

ungefähr so: "test.png","test2.png","test3.jpg"
 

Timothy Truckle

Top Contributor
Funktioniert so leider nicht oder ich mache etwas falsch es wird leider nur der erste Listen Eintrag zum Download angeboten.
Ich weiss das es geht habe schon mehrfach Dateien gedownloadet diese wurden dann beim Speichern unter Dialog mit , getrennt angezeigt.

ungefähr so: "test.png","test2.png","test3.jpg"
Die Schleife sieht erstmal gut aus.
Aber ich sehe hier auch nichts, weas irgendwie mit einem Download-Dialog zu tun hätte...

bye
 

Nogothrim

Aktives Mitglied
Das kann so nicht funktionieren, du hast ja nur ein HTTP Response Objekt, das in der Schleife überschrieben wird, aber am Ende hast du nur einen Request.
 

Askadi

Mitglied
Naja mein Code ist der im ersten Beitrag und dieser funktioniert einwandfrei mehr habe ich nicht im Servlet stehen.

Es poppt einfach das Explorer Fenster auf und ich kann sagen wo ich die Datei speichern will.

Meine Frage war jetzt wie man das ganze für mehrere Dateien anpassen kann, bzw wenn es nicht geht das ganze evtl gezippt downloaden.
 

Timothy Truckle

Top Contributor
Naja mein Code ist der im ersten Beitrag und dieser funktioniert einwandfrei mehr habe ich nicht im Servlet stehen.
D.h., Du schreibst die Dateien in Zeile 25 bis 27 auf dem Server? Wieso soll dann der Client ein Verzeichnis bei sich auswählen?

IMHO wäre es sinnvoll die Dateien in ein Zip zu zusammenzufassen, dass kannst Du in einem Rutsch übertragen und der Anwender kann es auf seinem Rechner entpacken...

bye
TT
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B IMAP Anmeldung in EJB - Objekt speichern und ständige Anmeldung verhindern Allgemeines EE 18
R Mehrere Bilder gleichzeitig bzw. dynamisch eines Objektes speichern Allgemeines EE 2
OnDemand JSF Primefaces Textfeld-Werte speichern Allgemeines EE 1
R JPA Problem beim Speichern eines Users Allgemeines EE 2
A Anfängerfrage: daten in datenbank speichern Allgemeines EE 8
Java.getSkill() verbindung / connection in session speichern Allgemeines EE 4
V JSP BEAN Speichern von einer Zahl nach eingabe Allgemeines EE 2
K tomcat: session-unabhängiges speichern Allgemeines EE 3
K Struts - FormBean mit 2 Listen - Anzeigen und Speichern Allgemeines EE 2
L speichern von daten mittels servlet in xml Allgemeines EE 8
G Daten aus Inputfeldern in Tabelle speichern Allgemeines EE 6
A JSF - Daten in Session speichern Allgemeines EE 2
D JSP - Datenmodell - Objekte speichern Allgemeines EE 6
K JPG file in Java Klasse speichern Allgemeines EE 13
G ResultSet in Session speichern Allgemeines EE 4
H daten in session speichern Allgemeines EE 8
T jsp: Dateiname als BenutzerId speichern. Allgemeines EE 2
T JSP: Datei mit dem Namen des BenutzerId speichern Allgemeines EE 4
M Cookies speichern Allgemeines EE 3
T Daten aus der Webseite (JSP) als .txt speichern Allgemeines EE 8
T JSP: Eingaben als *.txt auf dem Server Speichern Allgemeines EE 14
T Textdateien mit JSP auf dem Server speichern ? Allgemeines EE 2
M servlet daten einlesen -> hashmap speichern Allgemeines EE 3
S Drools: verarbeiten von mehreren DRL Files Allgemeines EE 0
I JBoss unheimlich langsam nach mehreren Deploys Allgemeines EE 2
E Servlet unter mehreren Adressen Allgemeines EE 16
W Enter in einer Form mit mehreren Submits Allgemeines EE 2
J Webanwendung mit intensiver Nutzung von Dateien Allgemeines EE 8
S Umgang mit hochgeladenen Dateien Allgemeines EE 18
B Tomcat6/axis1.4 kann nicht auf Dateien zugreifen Allgemeines EE 3
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
D Wohin mit Resourcen (Bilder, txt Dateien) im Application Client Allgemeines EE 3
T Apache Lucene Dateien verändern Allgemeines EE 6
Q Dynamische Formulare aus xml Dateien erstellen... Allgemeines EE 8
R Zugriff auf Dateien in Meta/Web-Inf Verzeichnis Allgemeines EE 7
V Lokale Dateien ausführen, IE,FF Allgemeines EE 2
J nur bestimmte Mapping-Dateien berücksichtigen (Hibernate) Allgemeines EE 14
K Zugriff auf Dateien beschränken Allgemeines EE 2
A Tomcat - Findet meine Dateien nicht ? Allgemeines EE 10
U Instanzen von *.war Dateien auslesen und steuern. Allgemeines EE 4
G WEB-INF/classpath funktioniert nicht für Dateien Allgemeines EE 2
padde479 Verzeichnisse und Dateien mit Passwort schützen bei Tomcat 5 Allgemeines EE 5
F relativer Pfad in Servlets für Dateien Allgemeines EE 2
FsMarine Probleme beim ausführen von JSP dateien unter Tomcat Allgemeines EE 4
A Eclipse: EJB-1.1-Dateien importieren und bearbeiten Allgemeines EE 2

Ähnliche Java Themen


Oben