Springboot 文件上传
定义静态文件访问地址
application.properties
//将该目录下的一切作为静态地址
spring.mvc.static-path-pattern=/static/**
//传入你自定义的静态文件地址
spring.web.resources.static-locations=file:E:\\shuidian_Project\\sdtt-server\\src\\main\\resources\\static
定义上传接口
@PostMapple("/upload")
定义上传方法
public String upload(String nichenname,MultipartFile file,HttpServletRequest request){
// 支持同时上传得字段
System.out.println(nichenname);
// 上传文件的文件名
System.out.println(file.getOriginalFilename());
// 上传文件的大小
System.out.println(file.getSize());
// 调用文件处理方法
String filename = savefilectrl(MultipartFile file)
if(filename!=null){
return "上传成功";
}
return "上传失败";
}
定义处理文件方法
public String savefilectrl(MultipartFile file) throws IOException {
// System.getProperty("user.dir") 可以得当前项目的目录,使用拼接将当前运行下的存放目录传入即可得到最终保存位置
String goodsImgPath = System.getProperty("user.dir") + "\\src\\main\\resources\\static\\goodsimg\\";
//调用保存文件的方法传入file以及保存路径,将结果返回
return savegoodsimgFile(file,goodsImgPath);
}
保存文件方法
public String savegoodsimgFile(MultipartFile photo,String path) throws IOException {
//通过new一个新的文件夹,使用传入的路径为新文件夹的路径
File dir = new File(path);
//如果该文件夹不存在则新建
if(!dir.exists()){
dir.mkdir();
}
//System.currentTimeMillis()得到当前的时间(毫秒级),后拼接类型.jpg作为新文件的名字
String loadname = System.currentTimeMillis()+".jpg";
//将路径和新名字作为参数新建file类
File file = new File(path + loadname);
//调用储存方法,将file类传入
photo.transferTo(file);
//返回储存的文件名
return loadname;
}