怎样使用smartUpload实现下载(smartUpload+servlet)?

当我们在jsp中使用smartUpload实现文件的下载时:会出现response.getOutputstream()重复使用和中文文件不能识别的问题.

[@more@]

当在Jsp文件中要实现文件下载的时候,我建议大家采用下列方法: jsp 文件传递参数, 用单独的Servlet下载文件!

(1)先下载smartUpload.jar放到WEB-INF/lib目录下.

smartUpload下载地址:http://yifanwq.itpub.net/get/12099/10459-jspSmartUpload.jar

(2)在WEB-INF/classes目录下产生cn.com.servlet.Servlet

package cn.com.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.SmartUpload;

public class SaveAs extends HttpServlet
{
private static final long serialVersionUID = 1L;

public SaveAs()
{
super();
}
public void destroy()
{
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{

response.setContentType("text/html");
request.setCharacterEncoding("GBK");
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"));
// 初始化
su.initialize(this.getServletConfig(),request,response);
su.setContentDisposition(null);//如果要实现单击在浏览器打开,注释该即可.
// 下载文件
try
{
System.out.print(name);
su.downloadFile("D:/"+name);//目录根据实际改变
}
catch(Exception e)
{
System.out.println(e);
}
}
}
(3)在web.xml中加入


This is the description of my J2EE component
This is the display name of my J2EE component
Imageoutput
cn.com.servlet.Imageoutput


This is the description of my J2EE component
This is the display name of my J2EE component
SaveAs
cn.com.servlet.SaveAs

(4)在jsp页面中建立如下连接即可:(页面的编码一定要是GBK)

<!--name即为下载的文件名:可动态生成--&gt
下载

(5)打开页面测试.

总结:此种做法避免了在下载中文文件之前要改名的问题.在打开下载对话框时,会自己变成英文.方便用户的辩认.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/788553/viewspace-823152/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/788553/viewspace-823152/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值