这里说的是form-data中通过MultiPartFie类接收前台传过来的文件
文件上传
public void uploadProcessDefinition(MultipartFile file) throws FileNotFoundException {
//获取需要存放的路径的绝对路径
String resourcesPath = new File(ResourceUtils.getURL("classpath:").getPath()).getAbsolutePath();
//获取上传文件名
String originalFilename = file.getOriginalFilename();
//上传文件目录
File tempFile = new File(resourcesPath + "/processes");
if(!tempFile.exists()){
//如果不存在则创建文件夹
tempFile.mkdirs();
}
//创建空文件用于写入文件
File uploadFile = new File(resourcesPath + "/processes/" + originalFilename);
try {
//将文件流写入新建的空文件中
file.transferTo(uploadFile);
} catch (IOException e) {
e.printStackTrace();
}
}
文件下载:通过二进制输出流的方式
public void download(String name, HttpServletResponse response) {
try {
//获取存放的路径
String pathUrl = new File(ResourceUtils.getURL("classpath:").getPath()).getAbsolutePath();
//输入流
//从目录中读取数据
FileInputStream fileInputStream = new FileInputStream(new File(pathUrl + name));
//输出流:将数据回显至浏览器
ServletOutputStream outputStream = response.getOutputStream();
//设置响应格式
response.setContentType("image/jpeg");
//通过流的方式回显回浏览器
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fileInputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
outputStream.flush();
}
fileInputStream.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}