Downloads in Servlets
-
Hallo Forum,
ich möchte in einem Servlet in der service()-Methode einen Download starten und zwar nicht über eine generierte HTML-Seite, sondern durch eine entsprechende HttpServletResponse (oder wie es halt sonst geht).Was ich meine, sieht in PHP übrigens so aus:
header(location: $Dateiname)
-
Hallo,
so gehts:[java]
public void service(HttpServletRequest MyRequest, HttpServletResponse MyResponse) throws ServletException, IOException {
final int BUFFER_SIZE = 4096;String tmpFileName = MyRequest.getParameter("file_name");
File tmpDownloadFile = new File(tmpFileName);
if(tmpDownloadFile != null){
byte tmpBuffer[] = new byte[BUFFER_SIZE];
int tmpLength;BufferedInputStream tmpBufferedInputStream = new BufferedInputStream(new FileInputStream(tmpFileName ));
ServletOutputStream tmpOutputStream = MyResponse.getOutputStream();MyResponse.setContentType("application/x-msproject");
MyResponse.setHeader("Content-disposition", "attachment;filename='" + tmpFileName + "';");
MyResponse.setHeader("Cache-Control", "no-cache");while((tmpLength = tmpBufferedInputStream.read(tmpBuffer, 0, BUFFER_SIZE)) != -1){
tmpOutputStream.write(tmpBuffer, 0, tmpLength);
}tmpBufferedInputStream.close();
tmpOutputStream.flush();
tmpOutputStream.close();
}
}[/code][ Dieser Beitrag wurde am 10.06.2002 um 07:37 Uhr von Titus editiert. ]
-
Na das ist doch etwas für die FAQ-Liste