读书人

Sturts2文件上载中文乱码处理

发布时间: 2012-09-21 15:47:26 作者: rapoo

Sturts2文件下载—中文乱码处理

//后台处理类

package com.action.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URLDecoder;
import java.net.URLEncoder;

import com.opensymphony.xwork2.ActionSupport;
?
public class DownLoadAction extends ActionSupport {??
?
?private static final long serialVersionUID = -2570279127996753260L;

?private String inputPath;??
?
??? private String filename;??
?
??? public String getInputPath() {??
??????? return inputPath;??
??? }??
?
??? public void setInputPath(String inputPath) {??
??????? this.inputPath = inputPath;??
??? }??
?
??? public String getFilename() {??
??? ?try {
??????????? return new String(filename.getBytes(), "ISO-8859-1");
???? } catch (Exception e) {
?????????? e.printStackTrace();
?????????? return filename;
??? }

??? }??
?
??? public void setFilename(String filename) {??
??? ? ? this.filename =filename;

??? }

????
??? public InputStream getInputStream() throws Exception {
??? ? inputPath=URLDecoder.decode(inputPath,"UTF-8");????
?? InputStream input=ServletActionContext.getServletContext().getResourceAsStream(inputPath);?? //解析服务器资源
?????return input;???
??? }??
?
??? public String download() throws Exception {??
??? ?System.err.println("错误");
??? ?try {
???
??} catch (Exception e) {
???e.printStackTrace();
??}
??????? return SUCCESS;??
??? }??
}?

配置文件:

? <action name="download" type="stream" >??
??????????????? <param name="contentType">application/octet-stream;charset=ISO8859-1</param>??
??????????????? <param name="inputName">inputStream</param>
??????????????? <param name="bufferSize">4096</param>??
??????????????? <param name="contentDisposition">attachment;filename="${filename}"? </param>
??????????? </result>??
??????? </action>?

前台页面:

<s:url id="url" action='download' namespace='/struts2' includeParams="none">
????? <s:param name="inputPath">/file/utils.rar</s:param>?<s:param name="filename">utils.rar
???????? </s:param> ?
?</s:url>
? <s:a href="%{url}">下载utils.rar</s:a>???
?//其中">/file/utils.rar? file为服务器的文件夹

详细参见:http://www.blogjava.net/xcp/archive/2009/10/30/downloadList.html

?

读书人网 >软件架构设计

热点推荐