1、页面
<a href="${pageContext.request.contextPath}/project/proDocAction_download.action?id=1>下载</a>
2、action配置
<result name="download" type="stream"><!--注意要指定类型为stream-->
<param name="contentType">text/plain</param> <!-- 指定下载文件的内容类型,text/plain是默认类型 -->
<!--
inputName默认值是inputStream,如果action中用于读取下载文件内容的属性名是inputStream,那么可以省略这个参数
-->
<param name="inputName">downLoadFile</param>
<!--动态获取文件名,从Action中的取得filename-->
<param name="contentDisposition">attachment;filename="${filename}"</param>
<param name="bufferSize">2048</param>
</result>
3、action代码
@SuppressWarnings("serial")
public class ProjectDocumentsAction extends BaseAction {
private String filename;//文件名称
public String download() {
return "download";
}
public InputStream getDownLoadFile() {
FileInputStream inputStream = null;
try {
String path="";//文件路径
filename="";
inputStream = new FileInputStream(path);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return inputStream;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getFilename() {
try {
filename = new String(filename.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return filename;
}
}