【文件下载】及解决文件名中文乱码问题_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 【文件下载】及解决文件名中文乱码问题

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

 2013/10/16 12:46:16  高军威  程序员俱乐部  我要评论(0)
  • 摘要:关键代码:packagecom.action;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.io.UnsupportedEncodingException;importjava.net.URLEncoder;importjava.util.ArrayList;importjavax
  • 标签:解决 文乱码问题 文件 文乱码 下载 问题 乱码问题 文件名
关键代码:
class="java" name="code">
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;
	}
	
}


效果图

  • 文件下载.rar (3.2 MB)
  • 下载次数: 0
发表评论
用户名: 匿名