加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java下载文件解决中文乱码问题

发布时间:2020-12-15 07:26:33 所属栏目:Java 来源:网络整理
导读:直接上代码 /** * @desc 下载已存在的文件 */public void sendFile(HttpServletRequest request,HttpServletResponse response,File file,String name) throws IOException { response.setContentType("application/x-download");OutputStream output = resp

直接上代码

	/**
	 * @desc 下载已存在的文件
	 */
	public void sendFile(HttpServletRequest request,HttpServletResponse response,File file,String name) throws IOException {
    	        response.setContentType("application/x-download");
		OutputStream output = response.getOutputStream();
		String filenamedisplay = name;
		response.addHeader("Content-Length",""+file.length());
		
		String userAgent = request.getHeader("User-agent");
		byte[] bytes = userAgent.contains("MSIE") ? name.getBytes() : name.getBytes("UTF-8");
		filenamedisplay = new String(bytes,"ISO-8859-1");  
		response.setHeader("Content-disposition",String.format("attachment; filename="%s"",filenamedisplay));
		int BUFSIZE = 65536;
		FileInputStream fis=null;
		try{
			fis= new FileInputStream(file);
			int s;
			byte[] buf = new byte[BUFSIZE];
			while((s = fis.read(buf))>-1){
				output.write(buf,s);
			}
		}catch (Exception ex) {
				ex.printStackTrace();
		}finally{
			output.flush();
			fis.close();
			output.close();
		}
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读