struts2的文件上传机制
生活随笔
收集整理的這篇文章主要介紹了
struts2的文件上传机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Struts2的上傳(基本流程例如以下)
1、Struts2默認採用了apache commons-fileupload
2、Struts2支持三種類型的上傳組件
3、須要引入commons-fileupload相關依賴包
* commons-io-1.3.2.jar
* commons-fileupload-1.2.1.jar
4、表單中須要採用POST提交方式,編碼類型須要使用:multipart/form-data
5、Struts2的Action
取得文件名->>規則:輸入域的名稱+固定字符串FileName
取得文件數據->>規則:File 輸入域的名稱
取得內容類型->>規則:輸入域的名稱+固定字符串ContentType
6、得到輸入流。採用輸出流寫文件
①.首先導入對應的jar包。然后我們建立一個index.jsp頁面。
<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body><form action="upload.action" method="post" enctype="multipart/form-data"> 標題:<input type="text" name="title"><br>文件:<input type="file" name="myFile"><br><input type="submit" value="上傳"></form> </body> </html>②然后我們須要一個Action來處理上傳,代碼例如以下: import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream;import com.opensymphony.xwork2.Action;public class UploadTestAction {private String title;//能夠得到上傳文件的名稱//規則:輸入域的名稱+固定字符串FileNameprivate String myFileFileName;//取得文件數據//規則:File 輸入域的名稱private File myFile; // //取得內容類型 // //規則:輸入域的名稱+固定字符串ContentTypeprivate String myFileContentType;public String getMyFileFileName() {return myFileFileName;}public void setMyFileFileName(String myFileFileName) {this.myFileFileName = myFileFileName;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public File getMyFile() {return myFile;}public void setMyFile(File myFile) {this.myFile = myFile;}public String getMyFileContentType() {return myFileContentType;}public void setMyFileContentType(String myFileContentType) {this.myFileContentType = myFileContentType;}public String execute() throws Exception {InputStream is = null;OutputStream os = null;try {is = new BufferedInputStream(new FileInputStream(myFile));os = new BufferedOutputStream(new FileOutputStream("D:\\" + myFileFileName));byte[] buffer = new byte[1024];int len = 0;while ((len = is.read(buffer)) > 0) {os.write(buffer, 0, len);}}finally {if (is != null) {is.close();}if (os != null) {os.close();}}return Action.SUCCESS;} }③Action寫完以后再到struts2的配置文件配置一下代碼例如以下: <?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><!-- 當struts.xml配置文件發生改動。會立馬載入。在生產環境下最好不要配置 --><constant name="struts.configuration.xml.reload" value="true"/> ? <constant name="struts.multipart.saveDir" value="絕對路徑"></constant><!-- 會提供更加友好的提示信息 --><constant name="struts.devMode" value="true"/><!-- 須要繼承struts-default包,這樣就擁有的最主要的功能 --><package name="upload-package" extends="struts-default"><action name="upload" class="com.csu.struts2.UploadTestAction"><result>/success.jsp</result></action></package> </struts>OK!至此就能夠上傳文件了。
轉載于:https://www.cnblogs.com/yangykaifa/p/6884317.html
總結
以上是生活随笔為你收集整理的struts2的文件上传机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git学习之时光机穿梭(四)
- 下一篇: ie 9 渐变背景色兼容问题