struts2 动态文件下载 大家帮帮忙啊,做了很久了!
struts2 文件下载 问题我写了个文件下载,我想用<s:iterator>标签遍历一个文件夹下的文件,
每个文件后有个下载链接,点击“下载”,就可以下载到硬盘上了,struts.xml,
Filedownload.java ,都写好了,就是jsp不知怎么写,主要是标签不会用,
而且也不知道这下载的路径怎么定的,如果大家有空就帮我看看,谢谢!
还要解决中文问题
为了把悬赏分增加,我又重新发表了一个,请会的人帮帮我,非常感谢!我已经做了好长时间了
请帮我思考思考,如果悬赏分不够,我的可以全给你
struts.xml
程序代码:
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="GBK"/>
<package name="default" namespace="/" extends="struts-default">
<action name="filedownload" class="com.heqing.action.Filedownload">
<!--<interceptors>
<interceptor name="downloadinterceptor"
class="com.dingxun.download.DownloadInterceptor">
</interceptor>
<interceptor-stack name="myinterceptor">
<interceptor-ref name="downloadinterceptor" />
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
-->
<param name="fileName"></param> <!-- 设置文件名参数,由页面上传入 -->
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param> <!-- 下载文件类型定义 -->
<param name="contentDisposition"> <!-- 下载文件处理方法 -->
attachment;filename="${downloadChineseFileName}"
</param>
<param name="inputName">downloadFile</param> <!-- 下载文件输出流定义 -->
</result>
</action>
</package>
</struts>
Filedownload.java
程序代码:
import
import
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Filedownload extends ActionSupport {
// 下载文件原始存放路径
private final static String DOWNLOADFILEPATH = "/";
// 文件名参数变量
private String fileName;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
// 从下载文件原始存放路径读取得到文件输出流
public InputStream getDownloadFile() {
return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADFILEPATH + fileName);
}
// 如果下载文件名为中文,进行字符编码转换
public String getDownloadChineseFileName() {
String downloadChineseFileName = fileName;
try {
downloadChineseFileName = new String(downloadChineseFileName
.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downloadChineseFileName;
}
public String execute() {
return SUCCESS;
}
}
[ 本帖最后由 heqingkelly 于 2010-10-8 21:01 编辑 ]