這個上傳類可以實現多個上傳,如果不適用數組就是單個上傳了
public class FileUploadAction extendsActionSupport {
private File[] fileup; //上傳的文件
private String[] fileupContentType; //上傳文件的類型
private String[] fileupFileName; //上傳文件的名稱
//fileup是頁面提交過來file的name屬性的值,fileupContentType和fileupFileName爲固定的寫法
private String path; //上傳文件的路徑
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public File[] getFileup() {
return fileup;
}
public void setFileup(File[] fileup) {
this.fileup = fileup;
}
public String[] getFileupContentType() {
return fileupContentType;
}
public void setFileupContentType(String[]fileupContentType) {
this.fileupContentType = fileupContentType;
}
public String[] getFileupFileName() {
return fileupFileName;
}
public void setFileupFileName(String[] fileupFileName) {
this.fileupFileName = fileupFileName;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String execute()
{
//獲取服務器要保存文件的絕對路徑
String p=ServletActionContext.getServletContext().getRealPath(path);
File pFile=new File(p);
//判斷如果文件夾不存在的話就創建
if(!pFile.exists())
{
pFile.mkdir(); //創建文件夾
}
//循環保存文件
for(int i=0;i<fileup.length;i++)
{
String newfilename=(new Date()).getTime()+fileupFileName[i].substring(fileupFileName[i].lastIndexOf("."));
//文件上傳
try {
FileUtils.copyFile(fileup[i],new File(p,newfilename));
setMessage("文件上傳成功!");
} catch(IOException e) {
setMessage("文件上傳失敗!");
}
}
return "ok";
}
Struts.xml中的配置信息
<struts>
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 這裏要設置允許文件上傳的大小,這是建議設置最大化,這樣上傳時出現異常就會進入input視圖 -->
<constant name="struts.multipart.maxSize" value="99999999999"/>
<package name="date" extends="base">
<action name="fileupload" class="action.FileUploadAction">
<!-- 引用默認的攔截器,通過引用可以設置相應的參數 -->
<interceptor-ref name="defaultStack">
<!-- 設置文件上傳的大小,這裏設置後,還需要設置常量的大小 -->
<param name="fileUpload.maximumSize">2024000</param>
<!-- 設置允許上傳的文件類型,這裏不是設置文件的後綴名,而是文件的MIME類型 -->
<param name="fileUpload.allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/pjpeg</param>
</interceptor-ref>
<param name="path">/upload</param>
<result name="ok">/fileupload.jsp</result>
<!--如果要使用input條轉的視圖則需要 Action類繼承ActionSupport,
在錯誤頁面使用<s:fielderror/>顯示錯誤信息 -->
<result name="input">/fileuplaoderr.jsp</result>
</action>
</package>
頁面的form的提交方式必須設置enctype="multipart/form-data"