锁定老帖子 主题:URL中包含中文文件名的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-07-16
的问题。 中间页面的代码如下: --test.jsp-- <%@page import="java.io.OutputStream"%> <%@page import="java.io.FileInputStream"%> <% String fileName="**风险揭示书"; String filePath=application.getRealPath("/")+“/upload/20120713/**风险揭示书.pdf”;//application.getRealPath("/")+"相对根目录的路径"; response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment;filename="+fileName+".pdf"); FileInputStream in = new FileInputStream(filePath); // 读入文件 OutputStream os = response.getOutputStream(); os.flush(); int aRead = 0; while ((aRead = in.read()) != -1 & in != null) { os.write(aRead); } os.flush(); os.close(); in.close(); %> 然后,使用如下html代码 <a href="/**/test.jsp">**风险揭示书.pdf</a> 就可以下到文件名称包含包含中文的文件了。 这个方法真的是很巧妙,使用了服务器流来下载文件,为此,我特意又搜集了些相关资料如附件。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-07-16
楼主再接再厉 啊 任重而道远
|
|
返回顶楼 | |
发表时间:2012-07-16
URLEncoder
URLDecoder |
|
返回顶楼 | |
发表时间:2012-07-17
只要把文件名放在response的头部就行了,struts2的文件下载就这样
|
|
返回顶楼 | |
发表时间:2012-07-17
楼上的几位啊 不看帖子
|
|
返回顶楼 | |
发表时间:2012-07-17
不明白楼主这是要干什么,如果是说用了apache的话,完全可以把附件类的东西当做apache的静态资源来处理,不会有中文乱码的问题。如果是用tomcat这类的东西,那楼上就有人说了。
|
|
返回顶楼 | |
发表时间:2012-07-17
我感觉这代码写的真是糟糕。。。。。
|
|
返回顶楼 | |
发表时间:2012-07-17
解码中文传播的问题,首先想到的肯定是转码,将中文转码成字母数字等就可以解决传输的问题,所以可以考虑base64转码中文部分。
第二种:在前端用escape进行中文的16进制转换,后台再转回来。 |
|
返回顶楼 | |
发表时间:2012-07-17
magichorse 写道 不明白楼主这是要干什么,如果是说用了apache的话,完全可以把附件类的东西当做apache的静态资源来处理,不会有中文乱码的问题。如果是用tomcat这类的东西,那楼上就有人说了。
不就是直接下载文件中文的文件名乱码吗?用servlet拦截静态文件目录下的请求然后再头部放入文件名就行了。 |
|
返回顶楼 | |
发表时间:2012-07-17
不过apache怎么会乱码呐,tomcat都不乱,apache怎么会乱,设置有问题吧
|
|
返回顶楼 | |