本地文件上传到阿里云服务器
//服务器存放地址
@Value("/mnt/data/gis")
private String comPicPath;
@ApiOperation(value = "上传文件", notes = "上传文件")
@PostMapping(value = "/compic")
public Map upload(@RequestParam("file") MultipartFile file) throws IOException {
// 企业图片地址
String filenewname = "";
String filepath = "";
Map map = new HashMap();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = "";
//文件上传
if (StringUtil.isNotEmpty(file)) {
//获取文件名
String filename = file.getOriginalFilename();
//文件名后缀
String suffix = filename.substring(filename.lastIndexOf("."));
//随机生成的文件名称和原本的文件名后缀
filenewname = UUID.randomUUID() + suffix;
format = sdf.format(new Date());
File folder = new File(comPicPath + format);
if (!folder.exists() && !folder.isDirectory()) {
folder.setWritable(true, false);
folder.mkdirs();
log.info("创建文件夹");
} else {
log.info("文件夹已存在");
}
filepath = comPicPath + format + File.separator + filenewname;
file.transferTo(new File(filepath));
String url = "阿里云地址" + format + "/" + filenewname;
map.put("url", url);
map.put("state", "SUCCESS");
map.put("original", filename);
map.put("size", file.getSize());
map.put("title", filename);
map.put("type", suffix);
} else {
ValueUtil.isError("文件不能为空,请选择文件");
}
return map;
}
上传成功以后是存到了服务器的缓存目录,需要执行docker命令,进行路径映射
这里是做了两个映射,前面是上传文件映射,后面是项目日志的映射
docker run --restart=always -v /mnt/data/gis:/mnt/data/gis -v /mnt/data/${JOB_BASE_NAME}/logs:/logs --name ${JOB_BASE_NAME} -p 5009:5009 -d ${JOB_BASE_NAME}
还没有评论,来说两句吧...