
- 加为好友
- 发送私信
- 在线聊天
|
| 发表于:2008-06-19 16:15:098楼 得分:0 |
不好意思.我用的是: java.net.URLEncoder.encode(photoname,"UTF-8");//也是不行, 这一行没有错. 谢谢大家了. 我已经解决了. 非常感谢大家的关注. 希望大家能给我解决以下这个问题.这是个用下载从"url"传过来值的处理代码,url得到的是一个文件夹及下面的文件名如:"/uploads/中国dfs.pdf"; - Java code
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.io.*" %>
<%
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String url = request.getParameter("url");
int a=url.lastIndexOf("/");
String filename=new String(url.substring(a+1).getBytes("ISO-8859-1"), "UTF-8");
String tttt=request.getSession().getServletContext().getRealPath("/");
System.out.println(tttt+filename+" tttt");
String urlz = "D:/apache-tomcat-5.5.25/webapps/SNHY"+url;
System.out.println(urlz+"======================");
File file = new File(urlz);
System.out.println(urlz+"++++++++++++++++++++++++++++++");
// response.setHeader("Content-Disposition", "attachment; filename=download.jpg" );
response.setHeader("Content-Disposition", "attachment; filename=" +filename);
[color=#FF0000]//filename为中文的文件名,我想下载的时候默认名是原来的文件名所以就这样写了[/color]
System.out.println("|||||||||||||||"+urlz);
//以流的形式写出文件
try{
FileInputStream bis = new FileInputStream(file);
OutputStream bos = response.getOutputStream();
byte[] buff = new byte[1024];
int readCount = 0;
readCount = bis.read(buff);
while (readCount != -1) {
bos.write(buff, 0, readCount);
readCount = bis.read(buff);
}
if (bis != null) {
bis.close();
}
if (bos != null) {
bos.close();
}
//下载完毕,给浏览器发给完毕的头
response.setStatus(HttpServletResponse.SC_OK);
response.flushBuffer();
//解决getOutputStream() has already been called for this response 错误
out.clear();
out=pageContext.pushBody();
}catch(Exception e){
}
%>
我会加分给解答者的. | | |
修改
删除
举报
引用
回复
| |