springboot中关于文件上传、下载和预览的问题

1.文件上传

在springboot中,文件上传可以分为两种方式:一种是直接解析为base64,存放到数据库中;另一种是直接拷贝到服务器的磁盘目录

base64存放数据库

这种方式相对来说,开发比较简单,原理:直接解析上传的文件为base64,保存数据库即可。注意的是,这种方法保存时,base64无法保存文件的格式,在进行回显时,如果需要根据文件格式选择不同的控件回显,会存在问题。所以,在以base64方式存入数据时,需要在数据库自定义文件格式的字段来存放,便于文件回显使用

 

Transto 方式直接复制到服务器磁盘

这种方式在性能上要比数据库的更加优秀。因为数据库保存的文件过大和过多时,数据库查询和读取速度会跟不上。不多说,上代码

1.需要编写一个配置类,来进行磁盘和java程序的映射

public class CorsConfig implements WebMvcConfigurer {

//图片保存路径
public static final String PIC_PATH = "C:/profile/";
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/** 图片传路径 */
registry.addResourceHandler("/file/**").addResourceLocations("file:" + PIC_PATH);
}
}

当然,这里的pic_path 也可以放到配置文件中
开始上传:
File dest=new File(filePath+newfileName);  //定义一个新的文件
file.transferTo(dest);  //上传的文件复制到磁盘文件
这样就完成了上传

2.读取和访问文件时:直接调用即可:如:http://localhost/api/file/a.png


 

posted @ 2022-05-07 18:09  成神之路~  阅读(1197)  评论(0)    收藏  举报