下载操作(javaweb)

文件下载的代码:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path="D:/music/Beautiful In White.mp3";
String name="又是一个没有你的四月.mp3";
name=filenameEncoding(name, request);//告诉浏览器使用编码
String contentType=this.getServletContext().getMimeType(path);//得到当前数据的Mime类型
String contenDisposition="attachment;filename="+name;//设置访问当前时弹出一个下载对话框
BufferedInputStream read=new BufferedInputStream(new FileInputStream(path));//得到当前对象流的形式
response.setHeader("Content-Type", contentType);//设置头节点
response.setHeader("Content-Disposition", contenDisposition);//设置头节点
ServletOutputStream output=response.getOutputStream();//得到向浏览器输出的流对象
IOUtils.copy(read, output);//将输入流对象,转化为输出流对象
}
//以下是为了解决中文编码问题的代码
public static String filenameEncoding(String filename, HttpServletRequest request) throws IOException {
String agent = request.getHeader("User-Agent"); //获取浏览器
if (agent.contains("Firefox")) {//浏览器是否是火狐的
BASE64Encoder base64Encoder = new BASE64Encoder();
filename = "=?utf-8?B?"
+ base64Encoder.encode(filename.getBytes("utf-8"))
+ "?=";
} else if(agent.contains("MSIE")) {//是不是ie
filename = URLEncoder.encode(filename, "utf-8");
} else {
filename = URLEncoder.encode(filename, "utf-8");
}
return filename;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值