我們實現(xiàn)文件上傳 用字節(jié)流的話代碼量大 效率低下 所以springmvc為我們提供了自己的方法。
SpringMVC專門提供了CommonMultipartResolver組件實現(xiàn)文件上傳:
maxUploadSize ? ? 文件最大限制,單位是byte
maxInMemorySize ? ?低于這個大小的文件暫存在內(nèi)存中
defaultEncoding ? ?默認(rèn)編碼
例如這樣配置:
上面的的配置,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移動到目標(biāo)地址:
FileCopyUtil.cope(file.getByte(),uploadFile);
?
以上是單文件上傳 ,對于多文件上傳,可以用MultipartHttpServletRequest的getFileMap()來獲取表單傳過來的所有文件
然后用for循環(huán)遍歷依次上傳文件:
?說完了文件上傳,再說下如何下載:
文件下載主要采用字節(jié)流的形式,有三個要點:
1.設(shè)置編碼格式為:text/html;charset=utf-8
2.設(shè)置header中Content-disposition屬性值為attachment;filename=文件名(這個文件名就是客戶端彈出框文件的名字)
3.設(shè)置header中Context-Length屬性,值為文件的大小
以上是一個小例子。
每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進(jìn)程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號