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