Springboot学习笔记三:文件上传

Springboot学习笔记三:文件上传

文章目录

        • Springboot学习笔记三:文件上传
          • 利用MultipartFile进行文件上传
          • 使用jar包上传文件
          • 总结

利用MultipartFile进行文件上传
  1. 后端数据处理返回给前端json数据的封装

Springboot学习笔记三:文件上传_第1张图片

  1. 代码
private static final String filePath="/users/path/Desktop";
public Result upload(@RequestBody MultipartFile file,HttpServletRequest request){}
  1. 获取请求头信息
String name=request.getParameter("name");
  1. 获取文件名
String fileName=file.getOriginalFilename();
  1. 获取文件后缀名
String suffixName=fileName.substring(fileName.lastIndexof("."));
  1. 创建文件上传路径
fileName=UUID.randomUUID()+suffixName;
File dest=new File(filePath+fileName);
  1. 将文件上传到指定路径内
try{
    file.transferTo(dest);//这是MultipartFile自带的接口,效率比FileOutputStream更高效
    return Result(xxx);
}catch(){
    
}
  1. 还可以对上传的文件大小,是否为空进行判断
file.isEmpty();
file.getSize();
使用jar包上传文件
  1. 文件上传的问题

如果在Idea里面的resource里面创建一个文件存放图片,启动IDE,是不会有问题的,但是如果打成jar包部署后,这样搞是无法访问图片的。那么就要解决这个问题。

  1. 在启动类里面进行配置上传图片大小。
@Bean
public MultipartConfigElement multipartConfigElement(){
    MultipartConfigFactory factory=new MultipartConfigFactory();
    //单个文件最大
    factory.setMaxRequestSize("10240KB");
    //设置总上传数据总大小
    factory.setMaxRequestSize("1024000KB");
    return factory.createMultipartConfig();
}
  1. SpringBoot进行打成jar包需要依赖,添加一个插件,没有该插件会报mainfest错误,意思是找不到程序的入口。MAINFEST.MF文件里面包含一个类加载器和该类的入口文件。

缺少打包插件


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
        plugin>
    plugins>
build>
  1. GUI:java反编译工具可以查看打成的jar包里面是否含上传的图片,或者直接解压缩,然后用subline查看。
  2. 文件上传和访问需要指定磁盘的路径,在application.properties中增加配置。
web.upload-path=/user/jack/desktop
spring.resources.static-location=classpath:/test/,file:${web.upload-path}
总结
  1. 如果并发量大的话需要专门配置一个文件服务器。比如:fastDFS,阿里云的OSS对象存储,或者用一个Nginx搭建一个简单的文件服务器。把资源和服务器分离开来。
  2. 总结上面的内容

1、如果不打成jar包的情况下,我们可以将文件上传到IDE资源文件中去。这是刚开始使用的。我们直接访问资源文件名+文件名就能访问我们要的图片。

2、如果要打成jar包,就不能将图片放到那里面了,会访问不到。我们需要进行配置,访问路径

3、首先在application.properties中配置文件访问路径,上面第5步。

4、接口处需要修改文件上传存储路径。要与配置的路径一致。

5、可以在启动类里面配置上传文件大小。

你可能感兴趣的:(Spring文件上传,springBoot学习笔记)