SpringMVC文件上傳的配置實(shí)例詳解
記述一下步驟以備查。
準(zhǔn)備工作:
需要把Jakarta Commons FileUpload及Jakarta Commons io的包放lib里。
我這邊的包是:
commons-fileupload-1.1.1.jar
commons-io-1.3.2.jar
然后在spring-servlet.xml進(jìn)行multipartResolver配置,不配置好上傳會(huì)不好用。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize"><value>100000</value></property> <property name="defaultEncoding"><value>UTF-8</value></property> </bean>
接下來就是頁面了:
注意Form的寫法和文件上傳組件的寫法。
<form action="uploadPosdetailFile.html" method="post" ENCTYPE="multipart/form-data"> <div class="form" > <p> <span class="req"><input id="startDateTxt" name="startDateTxt" class="field size4" title="Enter the date" /></span> <label>Start Date: <span>(Date format:MM/dd/yyyy,eg:01/01/2014)</span></label> </p> <p> <span class="req"><input id="endDateTxt" name="endDateTxt" class="field size4" title="Enter the date" /></span> <label>End Date: <span>(Date format:MM/dd/yyyy,eg:12/25/2014)</span></label> </p> <p> <span class="req"><input type="file" name="uploadFileCtrl" class="field size4" title="Choose the file" /></span> <label>Upload file: <span>(click browse to choose)</span></label> </p> </div> <div class="buttons"> <input id="queryBtn" type="Submit" class="button" value="Submit" /> </div> </form>
再在控制器里寫處理代碼,注意參數(shù)和頁面控件的對(duì)應(yīng)關(guān)系:
@RequestMapping(value="/uploadPosdetailFile")
public String uploadPosdetailFile(@RequestParam("startDateTxt") String startDateTxt,
@RequestParam("endDateTxt") String endDateTxt,
@RequestParam("uploadFileCtrl") MultipartFile file,HttpServletRequest request,HttpServletResponse response){
try {
System.out.println("@@@@@@@@@1.startDateTxt="+startDateTxt);
System.out.println("@@@@@@@@@2.endDateTxt="+endDateTxt);
System.out.println("@@@@@@@@@3.file="+file.getOriginalFilename());// 得到上傳文件的文件名
if(file.isEmpty()==false){
InputStream is=file.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String s;
while((s=br.readLine())!=null ){
System.out.println(s);
}
br.close();
isr.close();
is.close();
}
return "/pages/posdetail/uploadposdetailresult/index.jsp";
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
request.setAttribute("error", e.getClass());
request.setAttribute("reason", e.getMessage());
StackTraceElement[] arr=e.getStackTrace();
request.setAttribute("stackTraceElements", arr);
return "pages/error/index.jsp";
}
}
相關(guān)文章
Java整合RabbitMQ實(shí)現(xiàn)五種常見消費(fèi)模型
本文將深入介紹RabbitMQ的五種常見消費(fèi)模型,包括簡單隊(duì)列模型、工作隊(duì)列模型、發(fā)布/訂閱模型、路由模型和主題模型,刪除線格式并探討它們各自的優(yōu)缺點(diǎn)和適用場景,感興趣的可以了解一下2023-11-11
java實(shí)現(xiàn)手寫一個(gè)簡單版的線程池
有些人可能對(duì)線程池比較陌生,并且更不熟悉線程池的工作原理。本文就來手寫一個(gè)簡單版的線程池,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
JMeter參數(shù)化4種實(shí)現(xiàn)方式(小結(jié))
參數(shù)化是自動(dòng)化測試腳本的一種常用技巧,可將腳本中的某些輸入使用參數(shù)來代替,JMeter提供了多種參數(shù)化方式,下面就其中常用的4種展開闡述,感興趣的可以來了解一下2021-12-12
java簡單實(shí)現(xiàn)桌球滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了java簡單實(shí)現(xiàn)桌球滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
struts2中simple主題下<s:fieldError>標(biāo)簽?zāi)J(rèn)樣式的移除方法
這篇文章主要給大家介紹了關(guān)于struts2中simple主題下<s:fieldError>標(biāo)簽?zāi)J(rèn)樣式的移除方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
Servlet輸出一個(gè)驗(yàn)證碼圖片的實(shí)現(xiàn)方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Servlet輸出一個(gè)驗(yàn)證碼圖片的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

