图片上传的简单实现
swagger接口
这里需要用到SSM框架和swagger的一些知识,不知道没关系,关注我,说不定我会更新。
@Controller
@ResponseBody
@RequestMapping("Oss")
public class OssController {
@Autowired
private OssService ossService;
@ApiOperation(value="文件上传", notes="文件上传")
@ResponseBody
@RequestMapping(value = "/uploadImage",method = RequestMethod.POST,consumes = "multipart/*",headers = "content-type=multipart/form-date")
public BaseModel upload(@ApiParam("商品id") @RequestParam(value = "id") int id,
@ApiParam(value = "上传的文件" ,required = true) MultipartFile file, HttpServletRequest request) throws Exception {
BaseModel model = new BaseModel();
ossService.getImagePath(id,file,model);
return model;
}
}
还是那句话遇到代码别怕,这里主要用到框架、注解,复制过去可以运行,逻辑不难,那些注解你就想着是用来打开某种功能就行了,注解器自己会处理的,背后实现逻辑又不要你清楚。若使用SSM框架,那你直接复制进去即可
这段代码可以开启swagger的文件传输
服务器图片本地化
下面的代码用于本地化MultipartFile文件。
上面方法里面的MultipartFile file通过ossService.getImagePath(id,file,model);传了进来,请看下面
这里提供主要代码,具体实现自己写一写哈,判空,数据库增删改查什么的。
private boolean localFile( MultipartFile file,String user){
if (file.isEmpty()) {
return false;
}else if(file.getSize() > (10 * 1024 * 1024)){
return false;
}
String fileName = file.getOriginalFilename();
File dest = new File("D:\\Tomcat\\Tomcat\\webapps\\image\\"+user, fileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest); // 保存文件
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
file.transferTo(dest)实现本地化,其中地址我用的是绝对路径,使用相对路径的话,加载在Tomcat里面是在bin目录下,也就是该JavaWeb部署在Tomcat里,这个文件会被bin目录的startup.bat加载到服务器中并对外开放。../webapps/image
和我上面的绝对路径是一样的,你细品。