程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> SpringMVC實現圖片上傳,springmvc圖片上傳

SpringMVC實現圖片上傳,springmvc圖片上傳

編輯:JAVA綜合教程

SpringMVC實現圖片上傳,springmvc圖片上傳


我們實現文件上傳 用字節流的話代碼量大 效率低下 所以springMVC為我們提供了自己的方法。

SpringMVC專門提供了CommonMultipartResolver組件實現文件上傳:

  • maxUploadSize     文件最大限制,單位是byte
  • maxInMemorySize    低於這個大小的文件暫存在內存中
  • defaultEncoding    默認編碼

例如這樣配置:

<!--fileUpload Support-->

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

  <property name="defaultEncoding" value="UTF-8"/>

  <!--max size:10M-->

  <property name="maxUploadSize" value="10485760"/>

</bean>

上面的的配置,id必須是multipartResolver,這樣才會保證上傳。不能隨意命名

這就是必須保證bean的id相同,才能正常工作。

 

這時候我們就開始配置form表單,必須添加enctype=“multipart/form-data”:

然後記得引入兩個jar包:

  • commons-fileupload.jar
  • commens-io-1.4.jar

 

然後我們開始編寫java代碼:

1.首先將request變成MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;

2.接下來就能用getFile來獲取file:

CommonsMultipartFile file = (CommonsMultipartFile)multipartRequest.getFile(“file”);

這個file必須與form表單中input的name的值一致。

3.最後把file移動到目標地址:

FileCopyUtil.cope(file.getByte(),uploadFile);

 

以上是單文件上傳 ,對於多文件上傳,可以用MultipartHttpServletRequest的getFileMap()來獲取表單傳過來的所有文件

然後用for循環遍歷依次上傳文件:

 

 說完了文件上傳,再說下如何下載:

文件下載主要采用字節流的形式,有三個要點:

1.設置編碼格式為:text/html;charset=utf-8

2.設置header中Content-disposition屬性值為attachment;filename=文件名(這個文件名就是客戶端彈出框文件的名字)

3.設置header中Context-Length屬性,值為文件的大小

 

 

以上是一個小例子。

 

這個是網站的上傳文件跟下載文件,app端怎麼上傳文件以及後台怎麼處理比較好還在研究中,如果有什麼好辦法可以留言,幫幫小弟,哈哈哈。

  補充: Android app 也有enctype=“multipart/form-data” 這個是在請求頭裡面 ,基於http協議的就有這個的,那就都網頁跟app上傳圖片就一樣了  

這裡只是做個簡單的demo 邏輯代碼不該寫在controller的。

特別注意下:

使用這個MultipartFile的時候,記得在前面加上@RequestParam,不然就會報錯

http://www.cnblogs.com/liuling/p/2014-3-5.html#

往後遇到問題還會繼續更新。

謝謝支持!


 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved