八、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