日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

SpringMVC(SSM)框架搭建JavaWeb项目时,前端页面文件上传,后台Java下载功能实现及相关问题记录说明

發布時間:2025/3/19 HTML 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC(SSM)框架搭建JavaWeb项目时,前端页面文件上传,后台Java下载功能实现及相关问题记录说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看在前面:前端頁面通過input控件實現文件上傳,后臺Java使用SpringMVC框架的實現網上有較多教程,但是真正配置一遍下來不報錯的較少,所以本博客前面先介紹一遍完整的設置步驟,然后介紹遇到的一些問題。

?

1. 前端頁面form表單的method屬性設置為“post”,如果設置為get無法處理文件數據過長的請求;然后,enctype屬性設置為“multipart/form-data”,表示表單的編碼類型是多段數據,既有文本數據,又有二進制文件數據。

#--------------form表單設置---------------#method="post" enctype="multipart/form-data"

?

2. Java后端若想能實現文件的處理,那么首先需要加入相關jar包,如果是maven項目,可以在pom.xml文件添加commons-fileupload和commons-io依賴來加載相關包,但是我添加依賴后,項目并沒有加載相關包(可能要注意版本問題),從而報錯:Error creating bean with name 'multipartResolver':?Failed to introspect bean class [org.springframework.web.multipart.commons.CommonsMultipartResolver

#----------------------------maven項目pom.xml文件的設置--------------------------#<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version> </dependency> <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version> </dependency>

因此推薦去apache官網的commons-fileupload和commons-io頁面手動下載jar包加入項目中,jar包導入不成功可參考另一篇博客,最終jar包導入如下圖。

?

3. SpringMVC配置文件中添加如下代碼聲明CommonsMultipartResolver對象,從而實現對表單項的解析,配置代碼如下。注意:如果使用注解的話,還得配置組件掃描器和注解驅動。

?

4. 最后,在Controller類處理請求的方法添加MultipartFile對象,該對象的名稱要和前端文件控件的name一致,否則無法賦值,那么MultipartFile對象為null。

如果有多個文件控件,那么前端頁面中令這些控件的name相同,后端使用MultipartFile數組來接收即可,有些博客說如果是數組,需要使用@RequestParam注解,但是我這邊沒用,正常有效,你可以根據自己情況試試,如下代碼段表示。

#----------------------前端頁面-------------------><input type="file" name="vertify" id="v1" value="" > <input type="file" name="vertify" id="v2" value="" >#----------------------后端請求方法--------------->@RequestMapping(value = "/teareg", method = RequestMethod.POST, produces = "text/plain;charset=utf-8") public ModelAndView login(HttpServletRequest req, Teacher teacher, MultipartFile[] certify){}

?

5. 最終保存文件代碼如下,成功保存在目標路徑效果如下圖。

// 得到當前項目的所在路徑 String path = req.getServletContext().getRealPath("/");// 獲取文件名 String fileName = file.getOriginalFilename();// 根據路徑和文件名創建文件類對象 File filePath = new File(path, fileName);// 最終將MultipartFile對象certify保存至相應路徑中 certify.transferTo(filePath);

?

?

報錯1.??java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils

解決:這個問題是因為網上有一些博客說導入了commons-fileupload包,不用導入commons-io包導致某些IO類找不到,可能以前是真的導入commons-fileupload就可以,但是隨著版本的更新迭代,某些版本已經沒有了包含關系,所以我們得自己導入commons-io包。

?

報錯2.?Required request part 'ss' is not present

解決:由于后端的MultipartFile對象名和前端控件name屬性不一致造成。

總結

以上是生活随笔為你收集整理的SpringMVC(SSM)框架搭建JavaWeb项目时,前端页面文件上传,后台Java下载功能实现及相关问题记录说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。