在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;
}
}