2009-08-03 8 views
1

Ich muss ein Download-Servlet in Java schreiben, um eine Datei vom Webserver herunterladen. Ich gründe die Antwortparameter wie folgt:Download Servlet Problem mit IE 6

resp.setContentType((mimetype != null) ? mimetype : "application/octet-stream"); 
resp.setContentLength((int)f.length()); 
resp.setHeader("Content-Disposition", 
       "attachment; filename=\"" + filename + "\""); 

Der Code scheint mit Firefox, Chrome und Internet Explorer 7 gut zu funktionieren, aber mit IE6 seine Zugabe „[1]“ in der Mitte des Dateinamens. Z.B. test[1]_check.txt (anstelle von test_check.txt). Es gibt keine doppelten Kopien der Datei auf der Client-Seite und ich kann nicht verstehen, wo ich falsch liege. Gibt es ein Problem mit meinen Antwortparametern?

Vielen Dank im Voraus

Antwort

1

Ich glaube, ich verstehe das Problem ... Beim Erstellen des Dateinamens der Datei zum Herunterladen ist es eine Verkettung von 2 Strings wie: test.pdf_check.txt.

Firefox und Chrome Download mit dem gleichen Namen, aber IE6 fügt [1] kurz vor der ersten Erweiterung (.pdf) ein, so bekomme ich test [1] .pdf_check.txt.

Ich habe die erste Erweiterung entfernt und es scheint gut zu funktionieren.

0

Überprüfung der Ordner Temp:

C:\Documents and Settings\YourUserName\Local Settings\Temp 

vielleicht ist es eine Kopie der Datei aus früheren Downloads

0

Ich glaube nicht, das Problem in setHeader() ist. Was ist mit dem Code, der den Wert filename bestimmt? Vielleicht ist der Wert verkettet?