當前位置:首頁 » 文件管理 » struts2上傳類型

struts2上傳類型

發布時間: 2023-07-02 11:39:47

1. struts2文件上傳

引入commons-fileupload 的jar包,頁面標簽是file類型。後台直接按前台標簽的名字按流讀取就行了。跟普通的上傳下載沒區別。

2. 使用struts2如何實現文件上傳

  1. 新建Web Project,在WebRoot下新建upload文件夾

  2. 在WebRoot下新建upload.jsp,上傳界面

  3. 編寫上傳成功、失敗的提示界面。

  4. 在WebRoot下新建uploadError.jsp

  5. 在WebRoot下新建uploadSuccess.jsp

  6. 編寫Action類

  7. 配置struts.xml文件,重置fileUpload攔截器。

  8. 測試,測試完成之後在tomcat下面webapps目錄下找到項目對應的文件夾下的upload下查看

3. struts2文件上傳是什麼流程

1,頁面設置, 一定有個表單,表單一定要設置兩個屬性method和enctype
method是表單提交方式,enctype是表單域內容以流的方式處理
<form method="post"
enctype="multipart/form-data"></form>
2,在表單內添加一個input,type="file",一定要添加一個name屬性
<form method="post" enctype="multipart/form-data">
<input type="file" name="file1">

</form>
3,控制器接值,可以接三個值(文件,文件名,文件類型)
private File file1;
private String file1FileName;
private String file1ContentType;
以上三個變數必須做setget方法,
4,struts2文件上傳用的是fileUploadInterceptor攔截器,默認文件大小為<=2M,類型沒限制

4. struts2文件上傳和下載

1,上傳方法
(1),頁面form表單添加一個屬性為enctype="multipart/form-data" 和method="post"

(2),假設上傳預覽框為 <input type="file" name="myfile" />
(3),控制器接值的方法為
private File myfile; //要上傳的文件

private String myfileFileName; //要上傳文件名稱
private String myfileContentType; //要上傳文件類型
別忘了做set方法

(4), 接到值後可以保存到資料庫,也可以保存到硬碟,
>>1 保存到資料庫, 資料庫表中對應欄位要設置為BLOB類型

>>2 保存到硬碟代碼如下

InputStream in = new
FileInputStream( myfile);
OutputStream out = new
FileOutputStream( new File("d:\\upload\\"+myfileFileName));
byte[] buffer
= new byte[ in.available() ];
int ins =
in.read(buffer);//讀取位元組到buffer中
//ins == -1 時
。就已經是文件的結尾了
while ( ins !=
-1 ) {
out.write(buffer, 0, ins);//將緩存buffer中的數據寫到文件中
ins = in.read(buffer);
}

in.close();
out.flush();
out.close();
2,下載
(1), 把要下載的文件轉成一個輸入流InputStream
例如,利用hibernate取得一個文件,文件類型在實體類中為byte[]類型,

inputStream = new
ByteArrayInputStream(book.getMyfile);
其中inputStream 為全局變數,並且做setter和getter方法
(2),在控制器對應的action節點中(struts2配置文件中)添加一個result節點如下:

<result name="download" type="stream">
<param name="contentType">application/zip</param>

<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${myFileFileName}"</param>
<param name="bufferSize">1024</param>
</result>
這樣,就可以實現上傳和下載了.

5. Struts2文件上傳時總是顯示類型不對,可是明明攔截器配置了,求大神解答

搞不懂 在struts2的action裡面 文件上傳的時候有個屬性ContentType就是文件的類型
比如
private File upload;//文件
private String uploadContentType;//文件類型
private String uploadFileName;//文件名
把uploadContentType直接手動去過濾下就行了 幹嘛要弄個攔截器來浪費資源呢

6. struts2文件上傳中,如何限制上傳的文件類型

只需要在struts配置文件中配置就OK了
案例如下:

<package name="upload" extends="struts-default" namespace="/upload">
<!-- 配置 -->
<action name="upload" class="www.ijava.com.UploadAction" >

<param name="savePath">e:/images/</param>

<!--往fileuploadInterceptor 注入 -->
<interceptor-ref name="defaultStack">
<!-- 改變當前文件運行上傳的類型 -->
<param name="fileUpload.allowedTypes">image/jpeg,image/jpg</param>
<!-- 允許的文件後綴 -->
<param name="fileUpload.allowedExtensions">jpg,jpeg,gif</param>
</interceptor-ref>
<result>/index.jsp</result>
</action>

熱點內容
學生信息管理系統java 發布:2025-02-05 06:58:45 瀏覽:576
刺客信條4解壓後 發布:2025-02-05 06:55:23 瀏覽:901
icophp 發布:2025-02-05 06:54:26 瀏覽:763
雲伺服器如何安裝nginx 發布:2025-02-05 06:47:16 瀏覽:95
福州職場解壓方式 發布:2025-02-05 06:36:31 瀏覽:557
c語言源程序的語句分隔符是 發布:2025-02-05 06:06:05 瀏覽:304
第一彈怎麼上傳視頻 發布:2025-02-05 06:06:04 瀏覽:997
策略樹演算法 發布:2025-02-05 06:00:31 瀏覽:610
存儲光碟數據恢復 發布:2025-02-05 05:43:50 瀏覽:384
android位置信息嗎 發布:2025-02-05 05:43:45 瀏覽:440