JSP页面
<form action="fileUpload1.action" method="POST" enctype="multipart/form-data">
<input type="file" name="file1" />
<input type="submit" value="上传文件" />
</form>
<a href="download.action?filename=XXX"> download.action?filename=XXX 路径中加文件名,下载文件的方式</a>
上传的Action
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class FileUploadAction {
private File file1;
private String file1FileName;
private String file1ContentType;
public String execute(){
try {
//文件的存放路径
File outFile= new File("/home");
if (!outFile.exists()) {
outFile.mkdirs();
}
String outName ="/home/" + file1FileName;
File destFile = new File(outName);
/*方式三: FileChannel inputChannel =new FileInputStream(file1).getChannel(); FileChannel outputChannel = new FileOutputStream(destFile).getChannel(); outputChannel.transferFrom(inputChannel, 0, inputChannel.size());*/
//方式二:使用FileUtils工具类
FileUtils.copyFile(file1, destFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return "success";
}
public File getFile1() {
return file1;
}
public void setFile1(File file1) {
this.file1 = file1;
}
public String getFile1FileName() {
return file1FileName;
}
public void setFile1FileName(String file1FileName) {
this.file1FileName = file1FileName;
}
public String getFile1ContentType() {
return file1ContentType;
}
public void setFile1ContentType(String file1ContentType) {
this.file1ContentType = file1ContentType;
}
}
下载的Action
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class DownloadAction {
private String filename;
private InputStream downloadFile;
public String execute() throws FileNotFoundException{
String dir = "/home/"; //下载到的路径
String filex = dir + filename;
downloadFile = new FileInputStream(filex);
return "success";
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public InputStream getDownloadFile() {
return downloadFile;
}
public void setDownloadFile(InputStream downloadFile) {
this.downloadFile = downloadFile;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd" >
<struts>
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.multipart.maxSize" value="10485760"></constant>
<package name="a1" namespace="/" extends="struts-default">
<action name="fileUpload1" class="com.zte.FileUploadAction" method="execute">
<result name="success">/fileUploadSuc.jsp</result>
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">10485760</param>
</interceptor-ref>
</action>
<action name="download" class="com.zte.DownloadAction" method="execute">
<result type="stream">
<param name="inputName">downloadFile</param>
<!-- 指定下载的文件名 <param name="contentDisposition"> attachment;filename=${filename} </param> -->
</result>
</action>
</package>
</struts>