http文件上传下载
程序员文章站
2022-03-11 20:01:36
...
springboot+swagger__http文件上传下载
package com.demo.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.util.FileCopyUtils;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.Map;
@RestController
@Api(value="http",tags="http文件上传")
@RequestMapping("http")
public class HttpController {
@RequestMapping(value = "uploadfile",method= RequestMethod.POST)
@ApiOperation(value="http文件上传")
public Map<String,Object> uploadFile(MultipartFile file) throws Exception {
Map<String,Object> map = new HashMap<String,Object>();
if (!file.isEmpty()) { //文件不为空
//获取跟目录 ResourceUtils.getURL("classpath:").getPath() --- 项目地址\\target\\classes
File filePath = new File(ResourceUtils.getURL("classpath:").getPath()+"\\upload");
String fileName = file.getOriginalFilename(); //文件名
if (!filePath.exists()) { //文件夹是否存在
filePath.mkdirs(); //不存在则创建
}
File dest = new File(filePath,fileName);
file.transferTo(dest);
map.put("fileName",fileName);
map.put("filePath",filePath);
}
return map;
}
@RequestMapping(value="/downuploadFile",method= RequestMethod.GET)
@ApiOperation(httpMethod="GET",value="http下载文件",notes="下载文件")
public void downuploadFile(HttpServletResponse response,String fileName) throws Exception {
File filePath = new File(ResourceUtils.getURL("classpath:").getPath()+"\\upload");
String url = filePath+"\\"+fileName;
FileInputStream fis = null;
try {
fis = new FileInputStream(url);
response.setContentType("application/x-download");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
FileCopyUtils.copy(fis, response.getOutputStream());
} finally {
fis.close();
}
}
@RequestMapping(value="/deleteFile",method= RequestMethod.GET)
@ApiOperation(httpMethod="GET",value="http删除文件",notes="删除文件")
public void deleteFile(String fileName)throws Exception{
File filePath = new File(ResourceUtils.getURL("classpath:").getPath()+"\\upload");
File file = new File(filePath+"\\"+fileName);
if (file.exists()) {
file.delete();
}
}
}