在Struts.xml中的写法:
<action name="upload" class="com.text.action.UpLoadAction"> <result name="success">/upload/uploadResult.jsp</result> <result name="input">/upload/update.jsp</result> <interceptor-ref name="fileUpload"> <param name="maximumSize">409600</param> <!-- <param name="allowedTypes">application/vnd.ms-powerpoint</param> --> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action>
在UpLoadAction中:
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.List;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UpLoadAction extends ActionSupport {
private String username; private List<File> file; private List<String> fileFileName; private List<String> fileContentType;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public List<File> getFile() { return file; }
public void setFile(List<File> file) { this.file = file; }
public List<String> getFileFileName() { return fileFileName; }
public void setFileFileName(List<String> fileFileName) { this.fileFileName = fileFileName; }
public List<String> getFileContentType() { return fileContentType; }
public void setFileContentType(List<String> fileContentType) { this.fileContentType = fileContentType; }
@Override public String execute() throws Exception {
for(int i=0;i<file.size();i++){ InputStream is = new FileInputStream(file.get(i));
String root = ServletActionContext.getRequest().getRealPath("/upload");
File destFile = new File(root, this.getFileFileName().get(i));
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } is.close(); os.close(); } return SUCCESS; }}
==============================================
下载文件:
在struts.xml中
action name="download" class="com.text.action.DownAction"> <result name="success" type="stream"> <param name="contentDisposition">filename="/aqiang.jpg"</param> <param name="inputName">downLoadFile</param> </result><!-- 这里的strem专门提供下载,在源文件strtus-default.xml中已经定义 --> </action>
在DownAction中:
import java.io.InputStream;
import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.ServletActionContext;
public class DownAction extends ActionSupport {
public InputStream getDownLoadFile() {
return ServletActionContext.getServletContext().getResourceAsStream( "/upload/aqiang.jpg"); }
@Override public String execute() throws Exception { return SUCCESS; }
}