1.下载nginx 并启动
直接用默认文件夹html就好,在html目录里新建一个文件夹用来装上传的图片
2.在新建的文件夹中放一张图片用浏览器测试是否能访问
3.新建一个数据库表来存放上传的文件路径
CREATE TABLE `tb_swiper` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`title` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '轮播图标题',
`path` varchar(1024) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '轮播图图片路径',
`is_deleted` int(1) DEFAULT NULL COMMENT '逻辑删除',
PRIMARY KEY (`id`),
KEY `swiper` (`title`,`is_deleted`) USING BTREE COMMENT '轮播图联合索引定位轮播图'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
4.文件上传接口
这里只有controller层代码,mapper层用的mybatis-plus ,所以只需在service简单的调用mapper.insert()没什么好说的
@PostMapping("upload")
public Object upload(@RequestParam("file") MultipartFile file){
String originName = file.getOriginalFilename();
Set<String> set = new HashSet<>();
set.add(".png");
set.add(".jpeg");
set.add(".jpg");
int count = 0;
for(int i = 0; i < originName.length(); i++){
if(originName.charAt(i) == '.'){
count = i;
break;
}
}
String endName = originName.substring(count);
String fileType = originName.substring(count + 1);
if(!set.contains(endName)){
return new String("上传的文件类型错误,只能上传png,jpeg,jpg类型的文件");
}
try {
String path="D:\\nginx-1.22.1\\html\\swiper\\"+originName;
file.transferTo(new File(path));
FileDto fileDto=new FileDto();
fileDto.setPath(path);
fileDto.setTitle(originName);
fileDto.setIs_deleted(0);
fileService.save(fileDto);
} catch (IOException e) {
throw new RuntimeException(e);
}
return success("上传成功");
}
5.文件路径列表接口
简单的返回列表
@GetMapping("list")
public Object list(){
return success(fileService.fileDtoList());
}
sql:
select * from tb_swiper where is_deleted=0