Struts1.x多檔案上傳問題
最近有個專案要用Struts1.x來做多檔案上傳,就是使用者可以在前臺動態新增任意多個檔案,然後上傳到伺服器上。這裡檔案個數不定,所有沒有定義到ActionForm裡。於是這時候想到了Apache的FileUpload元件,但是這個元件需要通過解析HttpServletRequest物件來獲取所有上傳的檔案物件。而通過Struts1.x的所有request都被包裝成MultipartRequestWrapper,此時再在Action裡再來解析request物件就不能獲取到上傳的FileItem物件。查看了以下Struts1.x的原碼,發現,其實我們可以有一種work around的方法來獲取FileItem物件,見如下方法
throws GuiException {
Map<String, FileItem> map =new HashMap<String, FileItem>();
try{
Hashtable ht = form.getMultipartRequestHandler().getFileElements();
Iterator it = ht.keySet().iterator();
Object obj = ht.get(it.next());
Field field = obj.getClass().getDeclaredField("fileItem");
if( null!= field ) {
field.setAccessible(true);
FileItem fileItem = (FileItem)field.get(obj);
map.put(fileItem.getFieldName(), fileItem);
}
}catch( Exception ex) {
thrownew GuiException(null, ex.getMessage());
}
return map;
}
此方法是通過反射來獲取Struts類中一個私有的成員變數來獲取上傳的檔案物件的,當然這只是一個臨時的解決辦法,並且如果要更換Struts版本,最好還是要去再測試一下,以防止類有變化。
說到這裡,其實我們還有一種辦法可以參考,就是使用Filter,我們可以新增一個FileUploadFilter來在struts處理之前獲取FileItem物件並且用request.setAttribute方法放入request物件中。當然這只是一個想法,沒有具體測試過。
相關推薦
Struts1.x多檔案上傳問題
最近有個專案要用Struts1.x來做多檔案上傳,就是使用者可以在前臺動態新增任意多個檔案,然後上傳到伺服器上。這裡檔案個數不定,所有沒有定義到ActionForm裡。於是這時候想到了Apache的FileUpload元件,但是這個元件需要通過解析HttpServletReq
struts 1.x多檔案上傳
<html:form action="/CFIS_AlbumAddPhotos.do" enctype="multipart/form-data" method="post"> image1 : <html:file propert
struts2.x多檔案上傳(使用註解)
一般網站都會提供檔案的上傳與下載的功能,尤其是資料管理型網站。剛好在工作中需要用到,就提前學習了一下,並建了一個maven工程做練習。 1. 本工程使用maven建立工程,是為了省去包匯入細節,其中maven工程的pom.xml檔案主要如下: <!--
Spring MVC - MultipartFile實現檔案上傳(單檔案與多檔案上傳)
前提:引入jar包。 <dependency>
相容ie8的多檔案上傳
在HTML5中,表單元素有一個新的屬性multiple,可實現多選功能。 <input type="file" multiple>這樣就可以實現多檔案上傳,但是此方法不相容ie8等低版本瀏覽器。所以專案中我使用的是百度的WebUpload外掛,此外掛在ie中底層使用flas
用Ajax提交多檔案上傳表單
function test(){ var form = new FormData(document.getElementById(“表單id”)); $ .ajax({ url:“表單提交路徑”, &nb
SpringBoot多檔案上傳和檔案下載
1、前端的form表單: <form id="form" action="controller層的多檔案上傳方法訪問路徑" method="post" enctype="multipart/form-data"> <input type="file" n
第30講 .struts2多檔案上傳
1在專案中,HeadFirstStruts2chapter08,新建filesUpload.jsp檔案 <%@ page language="java" contentType="text/html; charset=UTF-8" &nbs
TP5實現多檔案上傳及展示
view層上傳: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body&
webuploader實現多檔案上傳
問題: 1: 上傳失敗,不知道怎麼在服務端寫返回值? 2: 做個多檔案上傳怎麼辦? 1:上傳失敗,不知道怎麼在服務端寫返回值? (1):首先在初始化Web Uploader 的方法寫上 server: 'http://localho
在SSM框架中使用AJAX實現多檔案上傳
今天來學習一下在SSM框架中使用ajax實現檔案的上傳。 1.首先我們需要一個搭建好的SSM框架專案,這個在這篇文章裡不是重點,自行先搭建好需要的專案。 這裡我是用的jsp頁面來和後臺介面關聯,在jsp檔案中我們需要一個form表單,請求方法為POST,enctype="mu
fastDFS+LibreOffice多檔案上傳(二)前端部分:修改上傳按鈕樣式和上傳後在頁面顯示
一:修改上傳按鈕樣式 原來的<input type="file"/>太醜了,所以我自己設定了樣式。方法:在<input type="file"/>上面加一層div,遮住它。 .upload{ padding: 0px 25px; line-height
Spring Boot 單檔案,多檔案上傳,以及將檔案寫入響應中
單檔案上傳 配置檔案設定 @Component public class MultipartConfig { @Bean public MultipartConfigElement multipartConfigElement(){ Multipa
fastDFS+LibreOffice多檔案上傳(二)後端部分:檔案資訊轉json字串儲存資料庫(Gson和org.json兩種方式)
需要注意的地方: 1)如果你複製我的程式碼到你的程式上報錯,可以看看我第一篇文章實體類跟配置檔案的設定:https://blog.csdn.net/qq_36688143/article/details/84162924 第二篇檔案上傳前端頁面的程式碼: https://blog.c
Java架構-Spring mvc+oss儲存+fileupload多檔案上傳實現SSO單點登入模板管理
之前給大家介紹了sso的相關知識點和整合方案,考慮到每個系統所屬行業的不同,這邊針對於不同行業做了一些統一的sso單點登入介面模板,使用fileupload多檔案上傳+OSS阿里雲端儲存方案。 1. 阿里雲oss儲存Utils Java程式碼 2. 阿里雲配
SWFUpload多檔案上傳使用指南
SWFUpload是一個flash和js相結合而成的檔案上傳外掛,其功能非常強大。以前在專案中用過幾次,但它的配置引數太多了,用過後就忘記怎麼用了,到以後要用時又得到官網上看它的文件,真是太煩了。所以索性就把它的用法記錄下來,也方便英語拙計的同學檢視,利人利己,一勞永逸。(ps:SWFUpload早就不再更新
php進階——02 多檔案上傳
前言 使用MVC的思想去封裝一個多檔案上傳類,入口檔案為index.php,檢視檔案有single和group2個html檔案,controller有upload.class.php。 index.php // 1.定義根目錄常量FILEROOT
plupload 多檔案上傳
情況1:各自傳各自的 https://www.sojson.com/blog/214.html //觸發的id var ids = new Array("cardzmbtn","cardbmbtn","cardzmbtn-img","cardbmbtn-
Java Web FormData格式資料流實現多檔案上傳
1.html <``input type="file" multiple="multiple" accept="image/gif, image/jpeg, image/png, image/jpg, image/bmp" /> 2.JS $(document).on("ch
java實現多檔案上傳01
1、html程式碼 <html> <head> <link rel="stylesheet" type="text/css" href="table.css" /> <link rel="stylesheet" type="text/css"