八、jar包方式運行web項目的文件上傳和訪問處理(核心知識)
簡介:講解SpingBoot2.x使用 java -jar運行方式的圖片上傳和訪問處理
一、文件大小配置,啓動類裏面配置
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//單個文件最大
factory.setMaxFileSize("10240KB"); //KB,MB
/// 設置總上傳數據總大小
factory.setMaxRequestSize("1024000KB");
return factory.createMultipartConfig();
}
二、打包成jar包,須要增長maven依賴
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
若是沒加相關依賴,執行maven打包,運行後會報錯:no main manifest attribute, in XXX.jar
GUI:反編譯工具,做用就是用於把class文件轉換成java文件
三、文件上傳和訪問須要指定磁盤路徑
application.properties中增長下面配置
1) web.images-path=/Users/jack/Desktop
2) spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}
四、文件服務器:fastdfs,阿里雲oss,nginx搭建一個簡單的文件服務器java
上傳一個大文件
文件超過了最大的限制
把代碼複製到application啓動類裏面
必定要是帶@SpringBootConfiguration的類裏面
SpringBootConfiguration註解裏面包含了@Configuration這個註解
引入對應的包後。
啓動應用。
上傳的這個圖片1.2M
上傳成功了
nginx
打包當前項目
打包成功
打包後會放在target的目錄裏面
運行這個jar包
錯誤:找不到入口啓動類
打包的時候須要一個maven的依賴
這是spring-boot提供的插件。幫我打包成一個jar包
再次打包
把壓縮包解壓出來
BOOT-INF:字節碼文件和依賴的jar包
MAINFEST.MF:最主要的是Main-Class:類加載器 加載咱們對應的應用
Start-Class:入口。剛纔的jar包報錯就是找到XdclassApplication
就是咱們源碼的這裏
web
第二行配置最後加一行
這裏先把上傳路徑寫死到這裏。由於咱們尚未學習讀取配置文件。之類暫時把路徑寫死
再次打包
運行 程序
上傳一個圖片
由於配置的是桌面上,因此上傳到了桌面上
也就是配置的這個目錄:User/jack/Desktop
能夠直接訪問這個圖片
spring