文件上传
必须,导入commons-fileupload-1.3.2.jar和commons-io-2.2.jar
jsp
表单的提交类型需要,改成字节
<h1>文件上传</h1>
<form action="updata" method="post" enctype="multipart/form-data">
<input type="file" name="fileName"/><br/>
<input type="file" name="fileName"/>
<input type="submit" value="上传"/>
</form>
建立一个Action
public class FileUpLoad extends ActionSupport{
private static final long serialVersionUID = 1L;
//这个,名字,必须,和 input file name 相同
private List<File> fileName; //具体上传文件的 引用 , 指向临时目录中的临时文件
private String [] fileNameFileName; // 上传文件的名字 ,FileName 固定的写法
private String[] fileNameContentType;//上传文件的类型, ContentType 固定的写法
@Override
public String execute() throws Exception {
//取到,文件,需要储存的路径
String path=ServletActionContext.getRequest().getRealPath("/upload");
byte[] by=new byte[500];
int len=0;
for (int i = 0; i < fileName.size(); i++) {//遍历 需要,上传的文件
//使用字节输出流 读取
FileInputStream fileinput=new FileInputStream(fileName.get(i));
//字节,缓冲输出流
BufferedInputStream bufferd=new BufferedInputStream(fileinput);
//字节输入流
FileOutputStream outPut=new FileOutputStream(path+"\\"+this.getFileNameFileName()[i]);
BufferedOutputStream Bufferedout=new BufferedOutputStream(outPut);
while((len=bufferd.read(by))!=-1){ //读取,文件到 字节数组中
Bufferedout.write(by, 0, len); //写入 文件
Bufferedout.flush();
}
fileinput.close();
bufferd.close();
outPut.close();
Bufferedout.close();
len=0;
}
return Action.SUCCESS;
}
public List<File> getFileName() {
return fileName;
}
public void setFileName(List<File> fileName) {
this.fileName = fileName;
}
public String[] getFileNameFileName() {
return fileNameFileName;
}
public void setFileNameFileName(String[] fileNameFileName) {
this.fileNameFileName = fileNameFileName;
}
public String[] getFileNameContentType() {
return fileNameContentType;
}
public void setFileNameContentType(String[] fileNameContentType) {
this.fileNameContentType = fileNameContentType;
}
}
xml配置
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<!-- 文件 上传 -->
<action name="updata" class="com.file.movement.FileUpLoad" >
<result name="success">accomplish.jsp</result>
</action>
</package>
</struts>
思维导向图