日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts2的文件上传机制

發布時間:2024/6/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的文件上传机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。