在SSM框架中將圖片上傳到數(shù)據(jù)庫中的實(shí)現(xiàn)代碼
今天我們來看看SSM中如何將圖片轉(zhuǎn)換成二進(jìn)制,最后傳入到自己的數(shù)據(jù)庫中,好了,廢話不多說,我們開始今天的學(xué)習(xí),我這里用的編輯器是IDEA
1、導(dǎo)入圖片上傳需要的jar依賴包
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
2、通過form表單提交到Controller控制層中,但是需要注意一點(diǎn),圖片上傳的請求方式必須是POST,否則會出現(xiàn)報(bào)錯(cuò)
然后在當(dāng)前的JSP頁面中的頭部加入以下代碼,防止出現(xiàn)中文亂碼
<meta http-equiv="Content-Type" content="multipart/form-data;charset=utf-8" />
3、在自己的form表單后面加入下面這行代碼,它的作用是將圖片轉(zhuǎn)換成二進(jìn)制進(jìn)行傳遞,但是它也有自身缺點(diǎn),它會將你所有傳遞的信息都轉(zhuǎn)換成二進(jìn)制
enctype="multipart/form-data"
4、一系列工作完事之后,我們來開始寫Controller控制層中的代碼,圖片上傳路徑切記要寫自己的上傳路徑,
pictureFile這個(gè)是我的圖片的傳遞名,這個(gè)一定要寫自己的圖片上傳名
<label class="layui-form-label">請選擇上傳圖片:<input type="file" name="pictureFile" class="layui-upload-file"></label>
@RequestMapping("這里寫form表單提交的請求路徑")
public String shengadd(HttpServletRequest request, Sheng sheng, MultipartFile pictureFile) throws Exception {
System.out.println("***");
//使用UUID給圖片重命名,并去掉四個(gè)“-”
String name = UUID.randomUUID().toString().replaceAll("-", "");
//獲取文件擴(kuò)展名
String ext = FilenameUtils.getExtension(pictureFile.getOriginalFilename());
//設(shè)置圖片上傳路徑
String url = request.getSession().getServletContext().getRealPath("/statics/img");
System.out.println(url);//輸出文件名
//以絕對路徑保存重命名后的圖片
pictureFile.transferTo(new File(url + "/" + name + "." + ext));
//把圖片儲存路徑保存到數(shù)據(jù)庫
sheng.setImg("statics/img/" + name + "." + ext);
userService.riyongadd(sheng);
return "redirect:/redutime.html";
}
5、最后一項(xiàng),在springmvc-servlet.xml文件中插入文件上傳解析器
<!-- 定義文件上傳解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 設(shè)定默認(rèn)編碼 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 設(shè)定文件上傳的最大值5MB,5*1024*1024 -->
<property name="maxUploadSize" value="5242880"></property>
</bean>
好了,我們開始來測試代碼結(jié)果:可以看到圖片已經(jīng)上傳到自己所需要的路徑里面,也保存到了數(shù)據(jù)庫中

到此這篇關(guān)于在SSM框架中將圖片上傳到數(shù)據(jù)庫中的實(shí)現(xiàn)代碼的文章就介紹到這了,更多相關(guān)SSM框架圖片上傳數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Maven清理java項(xiàng)目中未使用到 jar 依賴包的方法
本文主要介紹了Maven清理java項(xiàng)目中未使用到 jar 依賴包的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
idea手動(dòng)執(zhí)行maven命令的三種實(shí)現(xiàn)方式
這篇文章主要介紹了idea手動(dòng)執(zhí)行maven命令的三種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
解決阿里代碼規(guī)范檢測中方法缺少javadoc注釋的問題
這篇文章主要介紹了解決阿里代碼規(guī)范檢測中方法缺少javadoc注釋的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Maven的生命周期與自定義插件實(shí)現(xiàn)方法
Maven的生命周期就是對所有的構(gòu)建過程進(jìn)行抽象和統(tǒng)一。包含了項(xiàng)目的清理、初始化、編譯、測試、打包、集成測試、驗(yàn)證、部署和站點(diǎn)生成等幾乎所有的構(gòu)建步驟2022-12-12
Java Redis分布式鎖的正確實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Java Redis分布式鎖的正確實(shí)現(xiàn)方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
java 設(shè)計(jì)模式之依賴倒置實(shí)例詳解
這篇文章主要介紹了java 設(shè)計(jì)模式之依賴倒置,結(jié)合實(shí)例形式詳細(xì)分析了依賴倒置的相關(guān)概念、原理、使用技巧及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-11-11
SpringBoot2 整合MinIO中間件實(shí)現(xiàn)文件便捷管理功能
這篇文章主要介紹了SpringBoot2 整合MinIO中間件,實(shí)現(xiàn)文件便捷管理,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
微信小程序完整項(xiàng)目實(shí)戰(zhàn)記錄(前端+SpringBoot后端)
隨著微信小程序的流行,越來越多的開發(fā)者開始涉足小程序開發(fā),下面這篇文章主要給大家介紹了關(guān)于微信小程序完整項(xiàng)目實(shí)戰(zhàn)的相關(guān)資料,項(xiàng)目包括前端+SpringBoot后端,需要的朋友可以參考下2024-09-09
Spring學(xué)習(xí)筆記之RedisTemplate的配置與使用教程
這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)筆記之RedisTemplate配置與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06

