`
高军威
  • 浏览: 182105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【文件下载】及解决文件名中文乱码问题

阅读更多
关键代码:
package com.action;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;

import javax.servlet.http.HttpServletResponse;

import com.entity.UserInfo;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.util.OgnlValueStack;
import com.sun.xml.internal.ws.util.StringUtils;

@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {

	private UserInfo 			user;
	private String 				jsonStr;
	private String 				msg;
	
	private ArrayList<UserInfo> userList = new ArrayList<UserInfo>();

	@Override
	public String execute() {
		msg = "欢迎您 " + user.getUserName() + " 登陆   " + "您的密码是: "
		+ user.getPassword();
		userList.add(user);
		return SUCCESS;
	}
	public String downloadLocal() throws FileNotFoundException, UnsupportedEncodingException {
		HttpServletResponse response =	(HttpServletResponse)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
        // 下载本地文件
		String fileName = URLEncoder.encode("新建 文本文档.txt", "UTF-8"); // 文件的默认保存名  解决中文乱码问题
		fileName = fileName.replace("+", "%20"); //当文件名中包含空格时
        // 读到流中
        InputStream inStream = new FileInputStream("c:/新建 文本文档.txt");// 文件的存放路径
        // 设置输出的格式
        response.reset();
        response.setContentType("bin");
        response.setCharacterEncoding("UTF-8");
        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        // 循环取出流中的数据
        byte[] b = new byte[1024];
        int len;
        try {
            while ((len = inStream.read(b)) > 0)
                response.getOutputStream().write(b, 0, len);
            inStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return SUCCESS;
    }
	public String getMsg() {
		return msg;
	}

	public UserInfo getUser() {
		return user;
	}

	public void setUser(UserInfo user) {
		this.user = user;
	}

	public String getJsonStr() {
		return jsonStr;
	}

	public void setJsonStr(String jsonStr) {
		this.jsonStr = jsonStr;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public ArrayList<UserInfo> getUserList() {
		return userList;
	}

	public void setUserList(ArrayList<UserInfo> userList) {
		this.userList = userList;
	}
	
}


效果图

分享到:
评论

相关推荐

    zip库(解决文件名中文乱码问题).zip

    "zip库(解决文件名中文乱码问题).zip" 提供了一个针对C++编程语言的解决方案,专门用于处理ZIP文件中中文文件名的乱码问题。这个问题在处理包含非ASCII字符(例如中文字符)的文件时经常出现,因为标准的ZIP库可能不...

    彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题

    本文用 C# 代码解决了在目前四种流行浏览器中Asp.net 输出文件流时文件名的空格及中文字符乱码这两个问题。使用本文的代码,你将可以让 IE(Internet Explorer)、Opera、Firefox 及 Chrome 的用户享受到没有乱码且...

    Java实现文件下载并解决中文文件名乱码

    本文将详细介绍如何使用Java实现文件下载功能,并重点讲解如何解决中文文件名乱码的问题。 #### 一、基本原理与步骤 1. **读取文件**:首先需要将要下载的文件读取到内存中。 2. **设置响应头**:为了正确地告知...

    文件下载response.setHeader()下载中文文件名乱码问题解决办法.pdf

    文件下载response.setHeader()下载中文文件名乱码问题解决办法 本文主要讨论了文件下载时response.setHeader()下载中文文件名乱码问题的解决办法。该问题是由于 HTTP 消息头中的 Content-Disposition 头字段不正确...

    jsp实现文件下载与中文文件名乱码问题解决

    本文将深入解析如何在JSP中实现文件下载,并解决中文文件名乱码的问题。 首先,我们需要了解HTTP协议在处理文件下载时的角色。当用户请求下载一个文件时,服务器需要设置响应头来指示浏览器如何处理这个响应。在JSP...

    ASP.NET 解决下载文件名乱码问题

    对于动态生成的文件下载链接,可以通过修改URL来解决文件名乱码。例如,将文件名作为URL参数传递,并在服务器端根据该参数生成正确的文件名。这种方法特别适合于动态内容的下载。 ```csharp // 假设URL为 ...

    解决JMeter上传包含中文文件名乱码ApacheJMeter_http.jar

    然而,当涉及到上传包含中文文件名的文件时,可能会遇到乱码问题。这个问题在JMeter的早期版本中尤为突出,比如在4.0版本中。本文将深入探讨如何解决JMeter在上传中文文件名时出现的乱码问题,并提供一种针对...

    jsch文件名中文乱码解决办法

    感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* ...如果乱码问题依然没解决,这个类也许能帮你找到你需要更改的编码类型。然后修改那三处地方。

    文件下载,二进制流转换成文件 解决中文名乱码的问题

    在IT领域,尤其是在Web开发中,处理文件下载和解决中文文件名乱码问题是常见的需求之一。本文将深入探讨如何通过二进制流转换为文件来实现文件下载,并着重讲解如何解决中文文件名出现的乱码问题。 ### 文件下载...

    jsch-0.1.53 使用sftp协议上传下载文件名中文乱码解决办法

    jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。

    解决浏览器请求响应中文文件名乱码问题的小工具包,解决中文文件名问题

    首先,我们需要理解问题的核心:浏览器在请求服务器上的资源,特别是文件时,如果文件名包含中文字符,可能会因为编码不一致导致乱码。这主要涉及到字符编码的两个关键概念——Unicode和字符编码转换。 1. **...

    Linux下中文文件名乱码问题的详解 - CSDN博客1

    文章中提到,作者在项目中遇到了生成的压缩包文件(可能是通过tar或gzip命令创建的)在Linux下显示中文文件名时出现乱码的问题。他们发现,Windows系统默认使用GBK编码,而Linux默认使用UTF-8编码,因此在处理文件名...

    多文件上传例子(解决中文乱码)

    多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...

    详解关于java文件下载文件名乱码问题解决方案

    Java文件下载文件名乱码问题解决方案 Java 文件下载文件名乱码问题是指在下载 Java 文件时,文件名出现乱码现象,影响下载文件的正确性。这种问题通常有两种情况:一是下载时中文文件名乱码,二是下载时因为路径中...

    struts2文件下载(解决了中文乱码问题)

    在处理文件下载时,Struts2提供了一套完整的解决方案,包括处理中文文件名的乱码问题。在标题提到的场景中,开发者可能遇到了在使用Myeclipse 6.5集成开发环境,JDK1.6和Tomcat 6.0服务器环境下,通过Struts2进行...

    SharpCompress 解压缩zip,rar文件,解决中文乱码

    《使用SharpCompress库处理ZIP和RAR文件及中文乱码问题》 在IT行业中,文件压缩和解压缩是一项常见的操作,特别是在数据传输和存储时。本文将深入探讨如何使用SharpCompress这一开源库来处理ZIP和RAR文件,并解决在...

Global site tag (gtag.js) - Google Analytics