中文文件名保存的时候一般要转一下
file.saveAs(new String(file.getFileName().getBytes(),"gb2312"));
还有href可以带中文的~
file.saveAs(new String(file.getFileName().getBytes(),"gb2312"));
还有href可以带中文的~
解决方案 »
- 我想在超链接中传入这样的参数 请问怎么实现谢谢 %u4F55%u4E3D%u4E3D
- spring定时器
- Struts2+JPA+Spring 出现PermGen space
- servlet基本理解问题-----------热心的人过来帮帮忙
- JSQLConnect2_20.jar,本机从没问题,我放到生产机上,出现以下license连接错误。
- 如何把Ascii码值转换为字符再加到字符串上!
- 关于静态类!!!
- 为什么我的VisualAge的帮助用不了啊?
- easyui中如何设置datagrid中的view为初始值
- treetable点击删除按钮怎么判断有无子菜单然后在删除?新手菜鸟求高手指点
- struts 文件上传 中文 问题,解决者100分相送!
- 熟练使用过smartupload的请进!
java.io.File file = new File(fileName);
InputStream input = new FileInputStream(file);
int len=0;
byte[] b=new byte[256];
response.setContentType("application/octet-stream; charset=gb2312");
response.addHeader("Content-Disposition","attachment; filename=" + fileName);
OutputStream output = response.getOutputStream();
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
input.close();
output.close();
return;
上传成功了,无论是传后的文件名,还是存在数据库的该文件名都正确,就是在下载连接的时候找不到文件:(
accp(accp) ——谢谢你,我马上试试!另外我的<a href="中文网页.htm">...</a>连接不好用不知道你们还能不能看到这个贴子,下午我一直上不了csdn,现在才爬上来:(
<%@ page import="java.io.*"%>
<%@ page import="java.io.File"%>
<%@ page language="java" import="com.jspsmart.upload.*"%><jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload"/>
<html>
<head><title></title>
</head>
<body>
<%
String fileName="";
fileName=request.getParameter("downFile");
fileName =new String(fileName.getBytes("ISO8859_1"),"GBK");
//fileName =fileName+"人月神话.pdf";
out.println("fileName:"+fileName);java.io.File file = new File(fileName);
InputStream input = new FileInputStream(file);
int len=0;
byte[] b=new byte[256];
response.setContentType("application/octet-stream; charset=gb2312");
response.addHeader("Content-Disposition","attachment; filename=" + fileName);
OutputStream output = response.getOutputStream();
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
input.close();
output.close();
//return;
//filename="/xzzx/file/人月神话.pdf";
// Initialization
//mySmartUpload.initialize(pageContext);
// Download file
//out.println(filename);
//mySmartUpload.downloadFile(fileName);
// With a physical path
//mySmartUpload.downloadFile("c:\\temp\\sample.zip")
// With options
// mySmartUpload.downloadFile("/wdgzq/upload/test.zip","application/x-zip-compressed","downloaded.zip")
%>
</body>
</html>
_________________________
怎么会呢?我这样的都没问题<a href="+ 河南省经济贸易委员会 +.htm">勒克司大家发</a>
不过我还是从没用中文作文件名的~
取到的fileName应该是/xzzx/file/人月神话.pdf ,但却是/xzzx/file,即使人为加上/人月神话.pdf 也是找不到,难道真是服务器不支持??我用的是alpha,jdk1.3 (alpha版本),tomcat3.1。能不能解决哦.Error: 500
Location: /web/down.jsp
Internal Servlet Error:javax.servlet.ServletException: /xzzx/file (No such file or directory)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java, Compiled Code)
at _0002fdown_0002ejspdown_jsp_15._jspService(_0002fdown_0002ejspdown_jsp_15.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java, Compiled Code)
at java.lang.Thread.run(Thread.java:484)Root cause:
java.io.FileNotFoundException: /xzzx/file (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java, Compiled Code)
at java.io.FileInputStream.(FileInputStream.java, Compiled Code)
at _0002fdown_0002ejspdown_jsp_15._jspService(_0002fdown_0002ejspdown_jsp_15.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java, Compiled Code)
at java.lang.Thread.run(Thread.java:484)
如果你是在web的根目录下放着,这样
String fileName = application.getRealPath("/xzzx/file/人月神话.pdf");
File file = new File(fileName);
Error: 500
Location: /web/down.jsp
Internal Servlet Error:javax.servlet.ServletException: /home/java/jakarta-tomcat/webapps/ROOT/xzzx/file/人月神话.pdf (No such file or directory)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java, Compiled Code)
at _0002fdown_0002ejspdown_jsp_27._jspService(_0002fdown_0002ejspdown_jsp_27.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java, Compiled Code)
at java.lang.Thread.run(Thread.java:484)Root cause:
java.io.FileNotFoundException: /home/java/jakarta-tomcat/webapps/ROOT/xzzx/file/人月神话.pdf (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java, Compiled Code)
at java.io.FileInputStream.(FileInputStream.java, Compiled Code)
at _0002fdown_0002ejspdown_jsp_27._jspService(_0002fdown_0002ejspdown_jsp_27.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java, Compiled Code)
at java.lang.Thread.run(Thread.java:484)
/home/java/jakarta-tomcat/webapps/ROOT/xzzx/file/人月神话.pdf
有的话文件名正确不正确,
再者如果你把文件存到数据库中了,下载的时候从数据库中取出直接传给下载页面下载就行了