基于SpringBoot的上传下载
上传
1.前段form上加上enctype="multipart/form-data"
2.后端使用@RequestParam("file") MultipartFile file
接受传输的数据
3.
@RequestMapping("add")
public void add(Emp emp,@RequestParam("file") MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();//原图片名字
//String fename = originalFilename.split(".")[1];
String filename=UUID.randomUUID().toString()+".jpeg";
//此时后缀名写死了
String url = "F:\\tp\\"; //文件写入路径
file.transferTo(new File(url + filename));
//将文件写入硬盘上
emp.setFilename(filename);//将文件名存入emp中
empService.save(emp);
}
下载与展示
1、展示:前端使用标签展示,同时传相应的图片名
例:<img src=http://localhost:8080/emp/showphoto?filename="+filename+"
2.后端:
@RequestMapping("showphoto")
public void aaa(String filename,HttpServletResponse response){
//先获取路径
String url = "F:\\tp\\";
try {
//读取数据
FileInputStream inputStream=new FileInputStream(url+filename);
byte[] bytes=new byte[inputStream.available()];
inputStream.read(bytes);
//如果不需要下载,则不需要这一行的代码
response.setHeader("Content-Disposition","attachment;fileName="+filename);
//将内容相应回前端
response.getOutputStream().write(bytes);
}catch (Exception e){
e.printStackTrace();
}
}