我的代码如下:
request.setCharacterEncoding("GBK");
String filename = request.getParameter("filename");
try {
String path = new DBConnEX().getUploadPath();
String name=filename.substring(path.length()+10);
System.out.println("#######"+name);
// String contentid=request.getParameter("contentid");
if (filename == null) {
filename = "";
}
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition",
"attachment; filename=\"" + name + "\"");
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
ServletOutputStream sos = response.getOutputStream();
FileInputStream fis = new FileInputStream(filename);
int j;
byte[] data = new byte[2048];
while ((j = fis.read()) != -1) {
sos.write(data,0,j);
}
sos.close();
fis.close();
return;
}
catch (Exception e) {
;
}
这样下载时跳出来的页面竟然无法解析文件名和类型,请问该怎么改?谢谢
request.setCharacterEncoding("GBK");
String filename = request.getParameter("filename");
try {
String path = new DBConnEX().getUploadPath();
String name=filename.substring(path.length()+10);
System.out.println("#######"+name);
// String contentid=request.getParameter("contentid");
if (filename == null) {
filename = "";
}
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition",
"attachment; filename=\"" + name + "\"");
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
ServletOutputStream sos = response.getOutputStream();
FileInputStream fis = new FileInputStream(filename);
int j;
byte[] data = new byte[2048];
while ((j = fis.read()) != -1) {
sos.write(data,0,j);
}
sos.close();
fis.close();
return;
}
catch (Exception e) {
;
}
这样下载时跳出来的页面竟然无法解析文件名和类型,请问该怎么改?谢谢
解决方案 »
- spring mvc redirect问题。
- jsp下载异常socket write error,并且不能用使用迅雷下载。这个问题困扰我很久了,恳请高人救我,解决后一定敬献60分。在线狂等中...
- 一个小问题,着急,在线等。
- 急……做好个网站用ssh做的买了个域名没买主机呢 接下来流程谁帮忙讲讲
- servlet输出图片问题??
- js中怎么验证上传图片格式问题
- 怎样用按钮控制复选框全选或反选?
- jsp中如何存储上传的图片
- 查询时,刷新几次就会无反应 。
- !!!高分请大家 整垮 我的JSP网站!!
- 为什么在插入大数量量时TOMCAT会出现错误?
- 请问用代码实现的数据库连接池和通过配置服务器实现的数据库连接池有什么区别?
使用双斜杠,单斜杠是转义字符,所以文件名当然不能解析了
"attachment; filename=" + java.net.URLEncoder.encode(name,"GBK"));