笔记
8、jar包方式运行web项目的文件上传和访问处理(核心知识)
简介:讲解SpingBoot2.x使用 java -jar运行方式的图片上传和访问处理 1、文件大小配置,启动类里面配置 @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //单个文件最大 factory.setMaxFileSize("10240KB"); //KB,MB /// 设置总上传数据总大小 factory.setMaxRequestSize("1024000KB"); return factory.createMultipartConfig(); } 2、打包成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文件 3、文件上传和访问需要指定磁盘路径 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} 4、文件服务器:fastdfs,阿里云oss,nginx搭建一个简单的文件服务器开始
上传一个大文件
文件超过了最大的限制 把代码复制到application启动类里面 一定要是带@SpringBootConfiguration的类里面 SpringBootConfiguration注解里面包含了@Configuration这个注解 引入对应的包后。 启动应用。 上传的这个图片1.2M 上传成功了打成jar包
打包当前项目
打包成功 打包后会放在target的目录里面 运行这个jar包 错误:找不到入口启动类 打包的时候需要一个maven的依赖 这是spring-boot提供的插件。帮我打包成一个jar包 再次打包 把压缩包解压出来 BOOT-INF:字节码文件和依赖的jar包 MAINFEST.MF:最主要的是Main-Class:类加载器 加载我们对应的应用 Start-Class:入口。刚才的jar包报错就是找到XdclassApplication 就是我们源码的这里配置上传的固定路径
第二行配置最后加一行 这里先把上传路径写死到这里。因为我们还没有学习读取配置文件。之类暂时把路径写死 再次打包 运行 程序 上传一个图片 因为配置的是桌面上,所以上传到了桌面上 也就是配置的这个目录:User/jack/Desktop 可以直接访问这个图片
扩展知识