Topic: 一个中文名文件下载不了的问题!!!

1.一个中文名文件下载不了的问题!!! Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-04-17 09:35

问题一:
假如在一台服务器上有一个文件:c:/upload/我的文件.doc,然后在jsp中有一个链接指向她,<a href="c:/upload/我的文件.doc">我的文件.doc</a>,运行的时候,如果你点这个链接会提示找不到这个文件。

问题二:
还是跟上面有关,上面那个doc文件是用JspSmartUpload来实现附件上载,上载的时候存储到服务器上时文件名已经经过了转码:(存放在c:/upload目录下)
java.net.URLEncoder.encode(fileName),换成了像下面这种形式的文件名:
%3D%2A%1A%3B%2B%3C%1D%1A.doc,然后用一个链接指向她,
<a href="c:/upload/%3D%2A%1A%3B%2B%3C%1D%1A.doc">我的文件.doc</a>,运行的时候,点这个链接时会弹出一个对话框,提示你“保存”或者“打开“,选择”保存“,这时候出现的保存文件名就是:%3D%2A%1A%3B%2B%3C%1D%1A.doc,我想保存对话框的文件名是原来的文件名,如"我的文件.doc",我该怎么办,有谁能帮我。。。。
第二个问题更重要。。。。

2.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: rainman
Posted on: 2003-04-17 09:43

问题一,链接要用utf-8编码的bytes再加上URL Encoding。
问题二,建议文件名不要改成URL Encoding的,直接还原原来的文件名。
下载的时候,在http头送文件名时需要URL Encoding。

3.Re:一个中文名文件下载不了的问题!!! [Re: rainman]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-04-17 10:03

rainman wrote:
问题一,链接要用utf-8编码的bytes再加上URL Encoding。
问题二,建议文件名不要改成URL Encoding的,直接还原原来的文件名。
下载的时候,在http头送文件名时需要URL Encoding。


我上传文件用的是jspsmartUpload包,它自动把文件名URL Encoding,还有,我下载时只是一个链接,它指向本机的一个文件,这种情况下怎么在http头送文件名呢?

4.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: rainman
Posted on: 2003-04-17 10:06

那就不要用jspsmartUpload咯。
上传文件的文件名是本机路径,你得从这个路径中取出文件名部分,然后保存在服务器上的时候用这个文件名。

5.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-04-17 10:06

问题一的解决方法能举一个简单的例子吗?
不胜感激!@!@

6.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-04-17 10:08

没办法,只能用这个,要不然用什么上传 ,别的我还要再学。时间好紧啊。。。。。

7.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: rainman
Posted on: 2003-04-17 10:10

URLEncoder.encode(filename, "UTF-8");

filename是中文文件名。

8.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-04-17 10:36

不好意思,再次麻烦。
你的意思是说:假如c:下有一个文件是:世界文化.doc,
我在JSP中写的代码是:

<%@ page contentType="text/html;charset=gb2312" session="true"%>
<%
String name=java.net.URLEncoder.encode("世界文化.doc","UTF-8"));
%>
<a href="c:/<%=name%>">世界文化.doc</a>

可是这样会提示找不到文件。

9.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-04-17 11:34

没有人知道吗?

10.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: jp_hao
Posted on: 2003-05-13 15:23

有没有哪位牛人把这个问题解决了,我也碰到了这个问题。

11.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: floater
Posted on: 2003-05-13 22:13

search on Jute board.

12.Re:一个中文名文件下载不了的问题!!! [Re: rainman]Copy to clipboard
Posted by: bless
Posted on: 2003-05-22 15:51

向各位求救,有人能解答一下这个问题吗?万分的感谢

13.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: 牛老板
Posted on: 2003-05-23 11:09

在win下,用gbk码,就不会有问题.

在UNIX下不好改...

14.Re:一个中文名文件下载不了的问题!!! [Re: 牛老板]Copy to clipboard
Posted by: bless
Posted on: 2003-05-23 15:55

牛老板 wrote:
在win下,用gbk码,就不会有问题.

在UNIX下不好改...

能说的详细一点吗?

15.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-05-23 16:41

这是上传的页面:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<body>
<form method="post" name="QuestionAdd" action="QuestionAdded.jsp" ENCTYPE="multipart/form-data" Language="JavaScript" onSubmit="return Add_onsubmit()">
附件:<input type="file" name="attachmentName" size="36">
<input type="submit" name="Submit" value=" 提交 ">
</form>
</body>
</html>


这是上传页面的处理页面
<!--Head-->
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="myUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<%
//getResource
  myUpload.initialize(pageContext);
  myUpload.upload();

//<!--Transaction-->
//假定上传到c:/upload
uploadpath = "c://upload";
java.io.File dir = new java.io.File(uploadpath);
if(!dir.exists()){
dir.mkdirs();
}

com.jspsmart.upload.Files files = null;
com.jspsmart.upload.File file = null;  
//count为上传的文件个数
int count = myUpload.save(uploadpath);
%>


这是显示附件的页面,在附件的链接上点击右键后点击“另存为”可以保存到机器上,直接点击会打开附件。
<%@ page contentType="text/html;charset=gb2312" %>
<%
<table>
<tr>
  <td align="right" width="27%"><font color=blue>附件:</font></td>
  <td width="73%">
    <%
      //att_name为你上传了的文件的文件名
      String att_name="世界文件.doc";
      if(att_name!=null){
        out.println("<a href=/"listAttachment.jsp?filename="+att_name+"/" target=/"_blank/">"+att_name+"</a>");
      }
    %>
  </td>
</tr>
</table>
</body>
</html>


这是显示附件内容的页面,很好地解决了中文问题,不妨一试,文件上传用的是com.jspsmart.upload.SmartUpload包,网上有下的。
<%@ page language="java" import="com.jspsmart.upload.*,cn.com.ahead.Util.*"%><jsp:useBean id="myUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /><% 
String filename=request.getParameter("filename");
filename=new String(filename.getBytes("iso8859-1"),"gb2312");
myUpload.initialize(pageContext);
myUpload.downloadFile("c://upload//"+java.net.URLEncoder.encode(filename),"application/ahead",new String(filename.getBytes("gb2312"),"iso8859-1"));
%>

注意:此页面上<%@....%><jsp:userBean..../><%....%>之间不能有任何空格,要不然下载到机器上的文件会多出几个回车换行符,格式会不对。

16.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: lixj0571
Posted on: 2003-05-26 13:07

问题二:
还是跟上面有关,上面那个doc文件是用JspSmartUpload来实现附件上载,上载的时候存储到服务器上时文件名已经经过了转码:(存放在c:/upload目录下)
java.net.URLEncoder.encode(fileName),换成了像下面这种形式的文件名:
%3D%2A%1A%3B%2B%3C%1D%1A.doc,然后用一个链接指向她,
<a href="c:/upload/%3D%2A%1A%3B%2B%3C%1D%1A.doc">我的文件.doc</a>,运行的时候,点这个链接时会弹出一个对话框,提示你“保存”或者“打开“,选择”保存“,这时候出现的保存文件名就是:%3D%2A%1A%3B%2B%3C%1D%1A.doc,我想保存对话框的文件名是原来的文件名,如"我的文件.doc",我该怎么办,有谁能帮我。。。。
第二个问题更重要。。。。

java.net.URLDecoder.decode(filename)解码

17.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-05-26 13:18

我上面已经解决了这个问题,你只要想办法把你上传的文件名传到显示附件的那个页面,也就是上面倒数第二个页面上就可以了,你可以在上传的时候把上传的文件名保存到数据库中或者是保存到Session里都可以。你试试。

18.Re:一个中文名文件下载不了的问题!!! [Re: rainman]Copy to clipboard
Posted by: bless
Posted on: 2003-05-26 16:21

谢谢adelejxsx 的帮助,真的是非常的感谢!

19.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: bless
Posted on: 2003-05-26 18:01

adelejxsx,又得向你求教了
现在问题是这样的:
显示一个英文名的照片没有问题,但就是显示不了中文名的相片,不知道如何解决,还请你指点迷津!再次向你表示谢意。

20.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: zenxin0103
Posted on: 2003-05-26 22:20

麻烦那位给SmartUpload原代码发给我,谢谢。

Email :zenxin0103@163.net

21.Re:一个中文名文件下载不了的问题!!! [Re: zenxin0103]Copy to clipboard
Posted by: why
Posted on: 2003-05-26 22:32

zenxin0103 wrote:
麻烦那位给SmartUpload原代码发给我,谢谢。

有人有SmartUpload的原代码嗎?
http://www.jspsmart.com/ 上的free download只有classes

22.Re:一个中文名文件下载不了的问题!!! [Re: adelejxsx]Copy to clipboard
Posted by: adelejxsx
Posted on: 2003-05-27 08:35

可以把他的类反编译一下,不过,可能没有原版的代码好。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值