我用jspsmartupload组件完成文件下载,代码如下:
do_download.jsp
<%@ page contentType="text/html;charset=gb2312" import="com.jspsmart.upload.*"%><%
SmartUpload su = new SmartUpload();
su.initialize(pageContext);   
su.setContentDisposition(null);   
String id=request.getParameter("id");
if(id.equals("1")){
su.downloadFile("/download/bmgf.doc");
}else{
String destname="大学教程.doc";
destname=new String(destname.getBytes("GB2312"),"ISO-8859-1");
su.downloadFile("/download/大学教程.doc","text/html",destname);
}
%>
但是,点击下载的时候,迅雷上的另存为一栏写的文件名是do_download.jsp,这是怎么回事啊?希望各位指点帮忙!
恩,我下了一个可以支持中文的jspsmartupload的jar包,中文可以支持,只有上面这个问题了,谢谢大家,帮忙了!

解决方案 »

  1.   

    do_download.jsp 是jspsmartupload的下载处理页面 没有问题的。
      

  2.   

    用struts 1/2 在程序里很好解决。页面没弄过
      

  3.   

    还真没用jspsmartupload做过下载,我一般指定http头来确定下载的文件名
      

  4.   

    do_download.jsp是我做下载处理的页面,在页面里让它下载“大学教程.doc”这个文件,那在另存为的文件名一栏里应该默认显示的是“大学教程.doc”才对啊,不应该显示的是do_download.jsp。呵呵,之前可能没描述清楚,各位有办法吗?
      

  5.   


    没错,我是这样做的。
    response.addHeader("Content-Disposition", "attachment; filename=" + fileName);
      

  6.   

    这个问题遇见过,你需要在String destname="大学教程.doc";因为文件名称是中文,所有文件名要重新进行编码,你那代码后再加上
    destname=URLEncoder.encode(destname,"gb2312"),后面的字符编码是你页面所用的编码,加上这句就应该没问题了
      

  7.   

    恩,对了,我即使把文档名字都改成了英文,迅雷另存为一栏上仍然显示的是do_download.jsp。
    各位大虾帮帮忙喽