解决硬编码的上传文件的方式及配置文件传值、url传值的中文乱码
2015-11-08 20:34
393 查看
配置文件:
<action name="download3" class="action.FileDownLoadAction3">
<!-- <param name="inputPath">/upload/struts2中文.txt</param> 这里有中文,在action中getter方法 中,需要转成iso-8859-1 -->
<result name="success" type="stream">
<param name="contentType">${contentType}</param>
<param name="inputName">targetFile</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="buffersize">4096</param>
</result>
<result name="login">/loginForm.jsp</result>
</action>
action:
package action;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileDownLoadAction3 extends ActionSupport {
private String fileName;
private String inputPath="/upload/";
public String getFileName() throws UnsupportedEncodingException {
//解决配置文件有中文的乱码
return new String(fileName.getBytes(),"ISO-8859-1");
}
public void setFileName(String fileName) {
try {
//解决url中有中文的乱码
fileName=new String(fileName.getBytes("ISO-8859-1"),"GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.fileName = fileName;
}
public InputStream getTargetFile() throws Exception{
inputPath+=fileName;
return ServletActionContext.getServletContext().getResourceAsStream(inputPath);
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
ActionContext ctx=ActionContext.getContext();
String user=(String)ctx.getSession().get("user");
if(user!=null&&user.equals("dxl")){
return SUCCESS;
}
this.addActionError("登录后方可允许下载文件");
return LOGIN;
}
}
<action name="download3" class="action.FileDownLoadAction3">
<!-- <param name="inputPath">/upload/struts2中文.txt</param> 这里有中文,在action中getter方法 中,需要转成iso-8859-1 -->
<result name="success" type="stream">
<param name="contentType">${contentType}</param>
<param name="inputName">targetFile</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="buffersize">4096</param>
</result>
<result name="login">/loginForm.jsp</result>
</action>
action:
package action;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileDownLoadAction3 extends ActionSupport {
private String fileName;
private String inputPath="/upload/";
public String getFileName() throws UnsupportedEncodingException {
//解决配置文件有中文的乱码
return new String(fileName.getBytes(),"ISO-8859-1");
}
public void setFileName(String fileName) {
try {
//解决url中有中文的乱码
fileName=new String(fileName.getBytes("ISO-8859-1"),"GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.fileName = fileName;
}
public InputStream getTargetFile() throws Exception{
inputPath+=fileName;
return ServletActionContext.getServletContext().getResourceAsStream(inputPath);
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
ActionContext ctx=ActionContext.getContext();
String user=(String)ctx.getSession().get("user");
if(user!=null&&user.equals("dxl")){
return SUCCESS;
}
this.addActionError("登录后方可允许下载文件");
return LOGIN;
}
}
相关文章推荐
- shell scp
- Qt Class之QTableWidget
- Python输入函数:raw_input() 与 input() 的区别
- Java中的join方法个人理解
- 老陈,小石头、
- 仿照微信的界面,即ViewPager+Fragment的结合使用
- hibernate基本类型映射
- UML——用例图
- HDU 2128Tempter of the Bone II
- 为什么MyISAM会比Innodb的查询速度快。
- 基于香蕉派平台的Raspberry Pi操作系统安装与配置
- 室内定位底图是怎样快速生成的?
- JAVA基础学习笔记(1):环境变量设置与Notepad++宏设置
- MySQL学习笔记(6)之设计范式
- Linux下进行SVN迁移
- QWidget、QMainWindow、QDialog区别
- Python应用与实践
- 常用正则表达式
- [HDOJ4786]Fibonacci Tree 最小生成树
- 使用 Bootstrap 快速开发网站和 Web 应用程序