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