Java文件上传和下载
发布日期:2021-05-14 08:28:45 浏览次数:15 分类:精选文章

本文共 2570 字,大约阅读时间需要 8 分钟。

������

������Java������������������������BASE64������������������������������������

������������������

���Spring Boot������������������������������������������RESTful API������������������������������������������

@PostingMap("/upload")

public Result upload(@ApiParam(name = "file", value = "������", required = true)
@RequestParam(name = "file", required = false) MultipartFile file) {

String fileName = file.getOriginalFilename();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String dateStr = sdf.format(date);
String fullPath = fliePath + dateStr + "-" + fileName;
File dest = new File(fullPath);

try {

file.transferTo(dest);
return new Result(ResultEnum.SUCCESS);
} catch (IOException e) {
e.printStackTrace();
return new Result(ResultEnum.ERROR);
}

}

������java���������BASE64

������Java���������BASE64������������������������������������

@RequestMap("/getImage")

public Result getImage(@RequestBody Imgurl imgurl) throws IOException {

String url = imgurl.getUrl();

FileInputStream fileInputStream = new FileInputStream(url);
ByteArrayOutputStream bos = new ByteArrayOutputStream();

byte[] b = new byte[1024];

int len = -1;
while ((len = fileInputStream.read(b)) != -1) {
bos.write(b, 0, len);
}

byte[] fileByte = bos.toByteArray();

// ������base64���������
BASE64Encoder encoder = new BASE64Encoder();
String data = encoder.encode(fileByte);
return new Result(ResultEnum.SUCCESS, data);

}

������java������������

������Java������������������������������������������

@RequestMap("/getDownLoad")

public void getDownLoad(HttpServletResponse response, @RequestBody Imgurl imgurl) throws IOException {

FileInputStream inputStream = null;

try {

File file = new File(imgurl.getUrl());  
inputStream = new FileInputStream(file);
ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
os.write(buffer, 0, length);
}
byte[] data = os.toByteArray();
response.resetBuffer();
response.resetBuffer();
response.setHeader("Content-Disposition", "attachment");
response.addHeader("file-name", URLEncoder.encode(imgurl.getName(), "UTF-8"));
response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream; charset=UTF-8");
IOUtils.write(data, response.getOutputStream());

} catch (IOException e) {

e.printStackTrace();
} finally {
if (inputStream != null) {
inputStream.close();
}
}

}

���������������������������������BASE64������������������������������������

上一篇:vue监听数据改变
下一篇:vue实现文件下载

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年05月01日 21时41分52秒