下载一个tomcat,tomcat需要将包创建到 webapps下,项目部署服务器随便
编写工具类UploadUtil
public class UploadUtil {
/**照片保存地址*/
private static final String BASE_PATH="D:/apache-tomcat-8.5.65-windows-x64/apache-tomcat-8.5.65/webapps/upload_img/";
/**服务器 图片访问*/
private static final String SERVER_PATH="http://域名或者文本地tomcat访问地址/upload_img/";
// private static final String SERVER_PATH="http://192.168.0.15:8077/upload_img/";
public static String upload(MultipartFile file){
/**获得文件上传的名称*/
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf(".")); //截取.后面的字符串 后缀名 主要是防止中文乱码 也要保住图片路径的唯一性
/**保证图片在服务器的唯一性,用UUID*/
String replace = UUID.randomUUID().toString();
/**将uuid 和文件名称进行拼接*/
String newFuleName=replace+suffixName;
/**创建一个实例对象*/
File file1 = new File(BASE_PATH,newFuleName);
try {
if (!file1.exists()){
/**文件不存在就创建*/
file1.mkdir();
}
/**对这个文件进行上传操作*/
file.transferTo(file1);
} catch (IOException e) {
System.out.println("上传传失败");
}
/**返回服务器路径*/
return SERVER_PATH+newFuleName;
}
}
Controller层 编写 UpLoadController
@RestController
@RequestMapping("sys/upload")
@Api(tags = {"对象存储/文件上传"})
public class UpLoadController {
@Autowired
private SysOssService sysOssService;
@PostMapping("/imgs")
@ApiOperation("文件上传")
public String uploadImg(@RequestBody MultipartFile file){
/**UploadUtil 文件上传工具类*/
String upload = UploadUtil.upload(file);
/**实体类*/
SysOssEntity ossEntity = new SysOssEntity();
/**upload 访问路径*/
ossEntity.setUrl(upload);
ossEntity.setCreateDate(new Date());
/**将图片路径和创建时间存入mysql中*/
sysOssService.save(ossEntity);
/**给前端返回访问路径*/
return upload;
}
}