Frage ist gelöstJava Servlet soll dynamisch erzeugte Daten als Download anbieten
07.02.2010
15:32:48 Uhr3866 Aufrufe
5 Antworten
15:32:48 Uhr
5 Antworten
Noch nicht bewertet
vCard - Datei zu Adresse zum Download anbieten
Hallo,
habe ein Servlet, welches Adressen aus einer SQL-DB auflistet. Zu jeder Adresse erzeuge ich jetzt einen String mit den Daten für die vCard. Nun möchte ich einen Link hinter die Adresse setzen, der beim Anklicken eine Datei zum Download anbietet (name_vorname.vcf). Die Datei will ich aber nicht erst auf Platte schreiben, sonder quasi streamen, damit beim Anklicken des Links gleich die AdressCard mit Outlook geöffnet werden kann.
Kennt jemand eine Lösung - wäre sehr dankbar
vG
LS
habe ein Servlet, welches Adressen aus einer SQL-DB auflistet. Zu jeder Adresse erzeuge ich jetzt einen String mit den Daten für die vCard. Nun möchte ich einen Link hinter die Adresse setzen, der beim Anklicken eine Datei zum Download anbietet (name_vorname.vcf). Die Datei will ich aber nicht erst auf Platte schreiben, sonder quasi streamen, damit beim Anklicken des Links gleich die AdressCard mit Outlook geöffnet werden kann.
Kennt jemand eine Lösung - wäre sehr dankbar
vG
LS
laster schreibt am 07.02.2010 um 20:19:02 Uhr
Hallo dog,
danke für Deine Info, steh blos bisschen auf dem Schlauch. Schick ich das dem Browser als 'Seite', so in der Form
- kann ich mit nicht richtig vorstellen.
Kannst Du nochmal etwas ausführliche schreiben - wenn Du Laune hast?
danke für Deine Info, steh blos bisschen auf dem Schlauch. Schick ich das dem Browser als 'Seite', so in der Form
01.
... 02.
PrintWriter out = new PrintWriter(response.getOutputStream()); 03.
... 04.
out.println("Content-Type: application/octet-stream"); 05.
...Kannst Du nochmal etwas ausführliche schreiben - wenn Du Laune hast?
dog schreibt am 07.02.2010 um 20:27:23 Uhr
Ich bin kein Java-Programmierer.
In PHP würde es so aussehen:
In PHP würde es so aussehen:
01.
$vcard = "[...]"; // inhalt der karte 02.
header('Content-Type: application/octet-stream'); 03.
header('Content-Disposition: attachment; filename="'.$name.'_'.$vorname.'.vcf"'); 04.
header('Content-Length: '.strlen($vcard)); 05.
06.
echo $vcard;
laster schreibt am 12.02.2010 um 16:35:40 Uhr
Hallo,
zum Abschluss die Lösung in Java (Servlet):
- geht so, wie es soll.
schöne WE
LS
zum Abschluss die Lösung in Java (Servlet):
01.
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 02.
PrintWriter out = new PrintWriter(response.getOutputStream()); 03.
... 04.
response.setContentType("application/octet-stream"); 05.
response.setHeader("Content-Disposition", "attachment; filename=vcard.vcf"); 06.
response.setHeader("Content-Length", "586"); 07.
... 08.
out.print("vcard-Daten im Klartext..."); 09.
out.close(); 10.
}- geht so, wie es soll.
schöne WE
LS






