文件下载功能我们也是需要编写一个servlet来实现,我觉得实现下载功能主要是有下面几个重要的步骤,其余的一些简单的操作大家可以自己完成,比如获取文件名什么的。
- 首先设置浏览器支持文件下载,也就是设置响应消息头
response.setHeader("Content-Disposition","attachment;filename="+filename);
当文件名为中文的时候,下载时可能会出现乱码的问题,我们可以使用下面的方法:
response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(filename,"utf-8");
- 获取OutPutStream流
ServletOutPutStream out=response.getOutPutStream();
- 获取要下载文件的输入流
FileInputStream in=new FileInputStream(filepath);
- 将文件数据输出到客户端
int len=0;
byte[] buffer=new byte[1024];//创建缓冲区
while((len=in.read(buffer))>0){
out.writer(buffer,0,len);
}
- 关闭相关流
in.close();
out.close();