struts 上傳文件
文 件上傳的時候struts會使用默認18個攔截器中的<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>進行處理。
文件上傳Action類:
Action類中定義三個屬性:
private File file1; 對應表單:<input type="file" name="file1">
private String file1FileName; 文件名
private String file1ContentType;文件的類型(MIME)
并且提供這三個屬性的set方法。
文件上傳表單:
<form action="${pageContext.request.contextPath }/fileUploadAction" method="post" enctype="multipart/form-data"> 用戶名:<input type="text" name="userName"><br/> 文件:<input type="file" name="file1"><br/> <input type="submit" value="上傳"> </form>
文件上傳使用的Action類UploadAction
package cn.itcast.upload;import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport{ // 對應表單:<input type="file" name="file1"> private File file1; // 文件名 private String file1FileName; // 文件的類型(MIME) private String file1ContentType; public void setFile1(File file1) { this.file1 = file1; } public void setFile1FileName(String file1FileName) { this.file1FileName = file1FileName; } public void setFile1ContentType(String file1ContentType) { this.file1ContentType = file1ContentType; } public String upload() throws IOException{ //得到上傳的文件夾 String path=ServletActionContext.getServletContext().getRealPath("/upload"); //創建文件 File file=new File(path,file1FileName); //講上傳的文件上傳到指定的文件夾 FileUtils.copyFile(file1, file); return "success"; } } </pre>
struts.xml文件的配置:<struts> <package name="upload_" extends="struts-default"> <!-- 注意: action 的名稱不能用關鍵字"fileUpload" --> <action name="fileUploadAction" class="cn.itcast.upload.UploadAction" method="upload"> <result name="success">/index.jsp</result> <!-- 配置錯誤視圖 --> <result name="input">/error.jsp</result> </action> </package> </struts>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!