1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <%@taglib uri="/struts-tags" prefix="s"%>
4 <!DOCTYPE html>
5 <html>
6 <head>
7 <meta charset="UTF-8">
8 <title>struts2的一个例子</title>
9 </head>
10 <body>
11 <form action="downloadFile.action" method="post" enctype="multipart/form-data">
12 文件名:<input type="text" name="fileName" value="CSS"/>.jpg<br/>
13 <input type="submit" value="下载文件">
14 </form>
15
16 </body>
17 </html>
index.jsp代码
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4 "http://struts.apache.org/dtds/struts-2.3.dtd">
5 <struts>
6 <constant name="struts.devMode" value="true"/>
7 <package name="hello" extends="struts-default" namespace="/">
8 <action name="downloadFile" class="com.xiaostudy.web.DownloadFile" method="downloadFile">
9 <result name="success" type="stream">
10 <param name="inputName">fileInputStream</param>
11 <param name="contentDisposition">attachment;filename="${fileName}.jpg"</param>
12 <param name="contentType">application/octet-stream</param>
13 </result>
14 </action>
15 </package>
16 </struts>
struts.xml代码
1 package com.xiaostudy.web;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.IOException;
7 import java.io.InputStream;
8 import java.io.UnsupportedEncodingException;
9
10 import org.apache.struts2.ServletActionContext;
11
12 import com.opensymphony.xwork2.ActionSupport;
13
14 public class DownloadFile extends ActionSupport {
15
16 public InputStream fileInputStream;
17 public String fileName;
18
19 public String downloadFile() throws IOException {
20
21 String path = ServletActionContext.getServletContext().getRealPath("/WEB-INF/files/CSS.jpg");
22 fileInputStream = new FileInputStream(new File(path));
23 this.fileName = new String(fileName.getBytes(), "ISO8859-1");
24
25 return SUCCESS;
26 }
27
28 public String getFileName() {
29 return fileName;
30 }
31 public void setFileName(String fileName) {
32 this.fileName = fileName;
33 }
34 public InputStream getFileInputStream() {
35 return fileInputStream;
36 }
37 public void setFileInputStream(InputStream fileInputStream) {
38 this.fileInputStream = fileInputStream;
39 }
40
41
42 }
action动作类DownloadFile