當前位置:首頁 » 文件管理 » 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>

熱點內容
win7怎麼給文件夾設密碼 發布:2025-03-20 04:52:38 瀏覽:723
安卓手機電影怎麼投屏到ipad上 發布:2025-03-20 04:27:23 瀏覽:677
蘋果安卓基於什麼開發 發布:2025-03-20 04:20:52 瀏覽:520
演算法化是 發布:2025-03-20 03:48:20 瀏覽:771
拆二代訪問 發布:2025-03-20 03:47:34 瀏覽:63
隨機數排序c語言 發布:2025-03-20 03:35:31 瀏覽:498
當前頁面腳本發生錯誤類型不匹配 發布:2025-03-20 03:26:47 瀏覽:993
strutsajax上傳圖片 發布:2025-03-20 03:25:03 瀏覽:386
手機在線緩存 發布:2025-03-20 03:21:06 瀏覽:46
ftp路徑上傳時間 發布:2025-03-20 03:13:42 瀏覽:104