SpringBoot上傳圖片與視頻不顯示問題的解決方案
起因
最近做畢設(shè)時(shí)候需要上傳視頻的圖片與視頻,并且每次都上傳了也看到了自己后端有顯示以及下載到了指定位置,但是每次都需要重啟前端才能展示出此圖片
尋找原因
因?yàn)槭乔昂蠖孙@示都是關(guān)于SpringMVC,首先進(jìn)入WebMvcAutoConfiguration查看關(guān)于Springboot中的默認(rèn)配置的顯示靜態(tài)資源的路徑。
1.進(jìn)入WebProperties.Resoures中查看默認(rèn)的配置
2.查看默認(rèn)的配置顯示的信息都是放在下面的幾個(gè)位置(也就是只需要將文件放在如下幾個(gè)地方就可以進(jìn)行展示)
字符串對應(yīng)的路徑舉例
classpath:/static/ 為下圖 resources中的static下的所有圖片信息 (這里我在里面創(chuàng)建了一個(gè)uploads文件夾,在uploads文件夾中創(chuàng)建了img文件夾,img里面我才放我的圖片)
分析
很明顯,現(xiàn)在是資源絕對是加載到了我想要放入的位置,但是就是不能實(shí)時(shí)的訪問到,那就是很有可能上傳了文件,但是因?yàn)樯蟼鞯穆窂接贛VC中的不匹配,沒有進(jìn)入服務(wù)器認(rèn)為的安全路徑(可能被攔截了),所以就沒有將剛才上傳的圖片放入你的tomcat中,但是每次重啟之后他又因?yàn)镾pringBoot中的設(shè)置的默認(rèn)路徑都會(huì)加載進(jìn)你的程序中,就出現(xiàn)了重啟過后才能顯示的情況。
解決方案
現(xiàn)在SpringMVC不認(rèn)識(shí)你的請求路徑那么就讓他知道你的路徑,并且映射到你存儲(chǔ)位置(上傳路徑與下載的位置相對應(yīng))
例如:
我們前端的請求路徑是/uploads/img/** (現(xiàn)在SpringMVC不認(rèn)識(shí)),下載路徑為 System.getProperty("user.dir") + /src/main/resources/static/uploads/img/
解決方式:
配置SpringMVC的放行路徑(使SpringMVC認(rèn)識(shí)上傳路徑)
@Configuration public class MyPicConfig implements WebMvcConfigurer { ? @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //前面為請求路徑,后面為文件存儲(chǔ)位置 registry.addResourceHandler("/uploads/img/**").addResourceLocations("file:"+ System.getProperty("user.dir") + "/src/main/resources/static/uploads/img/"); } }
總結(jié)
要想圖片能夠?qū)崟r(shí)展示有倆個(gè)主要因素
1.前端請求路徑讓tomcat能夠認(rèn)識(shí),讓其認(rèn)為是安全路徑
2.后端的下載位置需要與你的SpringBoot認(rèn)識(shí)就比如上面源碼中的默認(rèn)位置
到此這篇關(guān)于SpringBoot上傳圖片與視頻不顯示問題的解決方案的文章就介紹到這了,更多相關(guān)SpringBoot上傳圖片與視頻不顯示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過自定制LogManager實(shí)現(xiàn)程序完全自定義的logger
本章主要闡述怎么完全定制化LogManager來實(shí)現(xiàn)應(yīng)用程序完全自定制的logger,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03java按鈕控件數(shù)組實(shí)現(xiàn)計(jì)算器界面示例分享
本文主要介紹了JAVA通過按鈕數(shù)組來管理界面中的所有按鈕控件,從而使用最少的代碼實(shí)現(xiàn)模擬的計(jì)算器界面2014-02-02利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù)
Java 語言的Calendar(日歷),Date(日期),和DateFormat(日期格式)組成了Java標(biāo)準(zhǔn)的一個(gè)基本但是非常重要的部分。日期是商業(yè)邏輯計(jì)算一個(gè)關(guān)鍵的部分。下面這篇文章就給大家介紹了如何利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù),下面來一起看看吧。2016-12-12RocketMQ生產(chǎn)者一個(gè)應(yīng)用不能發(fā)送多個(gè)NameServer消息解決
這篇文章主要為大家介紹了RocketMQ生產(chǎn)者一個(gè)應(yīng)用不能發(fā)送多個(gè)NameServer消息原因及解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11詳解Spring系列之@ComponentScan自動(dòng)掃描組件
這篇文章主要介紹了Spring @ComponentScan自動(dòng)掃描組件使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06IDEA教程創(chuàng)建SpringBoot前后端分離項(xiàng)目示例圖解
在使用spring、mybatis等框架時(shí),配置文件很復(fù)雜,有時(shí)復(fù)雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問題就都不是問題2021-10-10SpringBoot整合Mybatis-Plus實(shí)現(xiàn)關(guān)聯(lián)查詢
Mybatis-Plus(簡稱MP)是一個(gè)Mybatis的增強(qiáng)工具,只是在Mybatis的基礎(chǔ)上做了增強(qiáng)卻不做改變,MyBatis-Plus支持所有Mybatis原生的特性,本文給大家介紹了SpringBoot整合Mybatis-Plus實(shí)現(xiàn)關(guān)聯(lián)查詢,需要的朋友可以參考下2024-08-08jenkins按模塊進(jìn)行構(gòu)建遇到的問題及解決方案
這篇文章主要介紹了jenkins按模塊進(jìn)行構(gòu)建的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05spring源碼閱讀--aop實(shí)現(xiàn)原理講解
這篇文章主要介紹了spring源碼閱讀--aop實(shí)現(xiàn)原理講解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09