`
dreamoftch
  • 浏览: 486314 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

servlet 下载文件 以及 下载文件名字 中文乱码 解决 处理

 
阅读更多
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

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

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

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		download(request,response);
	}
	
	public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
        try {
        	// UploadConfigConstants.CLIENT_FILE是下载文件的路径。
        	File file = new File(request.getSession().getServletContext().getRealPath(UploadConfigConstants.CLIENT_FILE));
        	if(! file.getParentFile().exists()){
        		file.getParentFile().mkdirs();
        	}
        	if(! file.exists()){
        		file.createNewFile();
        	}
        	 // 清空response
            response.reset();
            // 设置response的Header,同时解决乱码问题
        	response.addHeader("Content-Disposition", "attachment;filename=" + new String(file.getName().getBytes("GBK"),"ISO8859_1"));
            response.addHeader("Content-Length", "" + file.length());
            // 以流的形式下载文件。
            response.setContentType("application/octet-stream");
            InputStream in = new BufferedInputStream(new FileInputStream(file));
            byte[] b = new byte[2048];
            int n = -1;
            OutputStream out = new BufferedOutputStream(response.getOutputStream());
            while((n = in.read(b)) != -1){
            	out.write(b,0,n);
            }
            in.close();
            out.flush();
            out.close();
        } catch (IOException ex) {
           throw ex;
        }
    }

}

 

分享到:
评论

相关推荐

    servlet中文乱码问题

    Servlet + Tomcat 中文乱码的解决方法,浏览器把Unicode字符转换为GBK字符,这样页面的内容和浏览器的显示模式都设成了GBK,就不会乱码了

    java通过servlet获取验证码和文件下载

    本代码主要是为了解决通过servlet向前台传送验证码并进行校验。另外还有通过servlet下载各种文件。同时避免中文乱码问题。如果下载后有文件无法启动的问题,请将代码移植到自己的程序中,本代码使用eclipse开发。是...

    如何配置Filter过滤器处理JSP中文乱码

    配置Filter过滤器处理JSP中文乱码 参考Tomcat服务器目录webapps的examples示例 简单配置步骤: 1.在项目web.xml文件添加过滤器标记和; 2.实现过滤器代码; 3.对Tomcat服务器conf目录里的Server.xml文件配置...

    jsp与servlet 上传文件 javaBean上传文件

    jsp与servlet文件上传代码,可以上传中文文件名,不乱码 jsp与javaBean文件上传代码,但上传中文文件名乱码 刚写完的。

    java乱码问题解决方法

    utf8解决JSP中文乱码问题 Tomcat 5.5中文乱码 JDBC ODBC Bridge的Bug及其解决方法 Solaris下Servlet编程的中文问题及解决办法

    中文乱码问题

    JSP文件的中文乱码问题 Servlet的中文乱码问题 表单处理的中文乱码问题 Struts 2的中文乱码问题

    response中文乱码解决的代码

    response进行文件下载的代码,并且包含解决中文文件名的问题

    servlet中使用smart实现上传和下载实例(解决中文名问题)

    这是一个工程例子,里面包含了上传文件,另存文件和重命名文件功能, 下载文件和下载重命名文件及文件名中文乱码问题等 还有遍历了文件目录中的文件,上传成功后,看可以直接看到文件列表和下载

    apache-tomcat-8.0.33中文自动解决GBK乱码问题

    apache-tomcat-8.0.33,针对有些项目的前端页面中,又有UTF-8,又有GBK,但是开发工具只配置了一种编码,导致其他页面出现部分乱码,并且更改该文件的编码也无效。而该工具可以自动解决UTF-8和GBK乱码的问题。 使用...

    jsp传参 servlet接收中文乱码问题的解决方法

    毕竟数据是根本嘛,首先我用的是hibernate+servlet,但是在jsp页面传参到servlet的时候中文一直乱码,我尝试了好多方法,最后还是解决了。 第一,首先看清项目的编码,jsp页面的编码 第二,修改tomcat 下面的server....

    下载文件乱码问题(附带下载源码)

    这是我做过很多项目总结出来的解决乱码问题的方法,希望能给初学者带来帮助,大家共同进步!!!

    MyEclipse中文乱码问题简单解决方案,不需任何编码转化

    这几天被编码乱码问题搞得头疼,现在找到一种简单解决方法,再也不需要编码转换,可直接插入数据库或者传递到页面或servlet

    java文件上传下载

    这是一个用java写的简单地文件上传(逻辑有点儿乱、需完善)、文件下载的demo,在文件下载中解决了下载文件标题乱码的问题,文件下载的乱码在ie,firefox, google chrome中已经测试过

    Servlet过滤器使用

    Servlet过滤器,主要配置了中文乱码及未登陆验证过滤器。 代码简单明了,易学。 过滤器实现类 1、Filter接口:所有的Servlet过滤器类都必须实现javax.servlet.Filter接口 a、init(FilterConfig): 这是Servlet...

    java下载时文件名乱码

    我上传的是一个servlet,里面有详细的说明,自己看看就知道怎么做了

    ajax中文乱码问题解决方案

    ajax中文乱码问题在中文中经常会出现这种问题,其实只要稍加注意就不会出现ajax中文乱码这回事情了,注意前后台编码一致.你用的是中文.而ajax传输数据的时候用的是utf-8 ,还有对ajax get方法时最好escape 或urlcode,...

    jspSmartupload已解决中文问题

    jsp上传文件、下载文件必备jar包, 本人已解决上传、下载中文的问题,请放心使用...

    EBook网上书城jsp+servlet+mysql

    利用jsp+servlet实现的一个网上书城web应用,数据库使用的是MySQL,具体的处理涉及到:中文乱码的处理,购物车,订单管理,用户账户管理,商品搜索,高级搜索,登录/注册,各种系统验证。里面包含了系统的一些设计...

    《Java Web开发与实战--Eclipse+Tomcat+Servlet+JSP整合应用》.(刘伟,张利国).[PDF].zip

    上传、java mail和分页显示、web编程中文乱码问题及解决方案、应用程序的打包和部署等。书中还深入讲解了客户端验证框架jsvalidation、在线文本编辑器fckeditor和apache commons的一些类库等功能强大的实用开发工具...

    flex + servlet 多文件上传

    采用了一个别人写的flex文件上传的组件,(都有源码) 这个例子中没有上传时的中文乱码问题,在struts下也能很工作的很好

Global site tag (gtag.js) - Google Analytics