上传多个文件至服务器端:
规范大于配置!
1、文件上传的过程和原理
2、上传单个文件
3、上传多个文件
private File documents[];
private String documentsFileName[];
4、获得上传文件名
private File document;
private String documentFileName;
5、通过参数设置上传临时文件的保存地址
struts.multipart.saveDir=/home/soft02/Test
6、通过参数设置上传临时文件的大小
struts.multipart.maxSize=102400
UploadAction1.java
package itany.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction1 extends ActionSupport {
private File documents[];
private String documentsFileName[];
public File[] getDocuments()
{
return documents;
}
public void setDocuments(File[] documents)
{
this.documents = documents;
}
public String[] getDocumentsFileName()
{
return documentsFileName;
}
public void setDocumentsFileName(String[] documentsFileName)
{
this.documentsFileName = documentsFileName;
}
@Override
public String execute() throws Exception
{
for(int i=0;i<documents.length;i++)
{
upfile(documents[i],documentsFileName[i]);
}
return null;
}
private void upfile(File file,String name) throws FileNotFoundException, IOException {
System.out.println(file.getAbsolutePath());
System.out.println(name);
FileInputStream fis=new FileInputStream(file);
byte[] content=new byte[fis.available()];
fis.read(content);
fis.close();
String path=ServletActionContext.getServletContext().getRealPath("uploads")+"/"+name;
// System.out.println(path);
FileOutputStream fos=new FileOutputStream(path);
fos.write(content);
fos.close();
}
}
struts.properties
struts.multipart.maxSize=102400
struts.multipart.saveDir=/home/soft02/Test
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="upload" extends="struts-default" namespace="/">
<action name="upload" class="itany.action.UploadAction"/>
<action name="upload1" class="itany.action.UploadAction1"/>
</package>
</struts>
upload.jsp
<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<s:form action="upload1" theme="simple" enctype="multipart/form-data" method="post">
文件1:<s:file name="documents"/><br/>
文件2:<s:file name="documents"/><br/>
<s:submit value="上传"/>
</s:form>