文件下载
在Demo01Servlet的doPost方法中的步骤如下:
/*文件下载*/
/*要知道文件下载的资源*/
ServletContext context = this.getServletContext();
String path = context.getRealPath("/WEB-INF/classes/res/3.jpg");
//构造文件
File file = new File(path);
//构造文件的输出流
InputStream is = new FileInputStream(file);
/*写:输出流*/
/*文件的下载*/
response.setHeader("content-disposition", "attachment;filename="+file.getName());
OutputStream os = response.getOutputStream();
byte buffer[] = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.close();
is.close();
中文文件下载步骤如下:
/*中文文件下载*/
/*要知道文件下载的资源*/
ServletContext context = this.getServletContext();
String path = context.getRealPath("/WEB-INF/classes/res/小狗.jpg");
//构造文件
File file = new File(path);
//构造文件的输出流
InputStream is = new FileInputStream(file);
/*写:输出流*/
/*文件的下载*/
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(file.getName(),"UTF-8"));
OutputStream os = response.getOutputStream();
byte buffer[] = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.close();
is.close();