admin管理员组文章数量:1533913
在我写完minio下载功能时,浏览器怎么也不执行下载,纯纯没反应,只返回了流给前端.就在百思不得其解时,突然去翻看之前前端写的下载代码请求,此时发现之前用的是Windows.open(url),现在不起作用的写的是ajax请求.找到了问题所在,直接列出代码!
- minio下载代码
@ApiOperation("文件下载")
@Log(title = "文件下载", businessType = BusinessType.EXPORT)
@GetMapping
public void downloadFiles(@RequestParam("fileUrl") String fileUrl,
@RequestParam("fileName") String fileName,
HttpServletResponse response) {
try {
fileUrl = fileUrl.replace("/" + minioConfig.getBucketName() + "/", "");
//setContentType 设置发送到客户机的响应的内容类型
response.setContentType("application-download");
//设置响应头
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(fileName,
"UTF-8"));
//文件流
InputStream stream = minioClient.getObject(
GetObjectArgs.builder()
.bucket(minioConfig.getBucketName())
.object(fileUrl)
.build());
BufferedInputStream buffInputStream = new BufferedInputStream(stream, 1024 * 10);
//设置文件大小
byte buf[] = new byte[1024*10];
int length = 0;
OutputStream outputStream = response.getOutputStream();
while ((length = buffInputStream.read(buf,0,1024*10)) != -1) {
outputStream.write(buf, 0, length);
}
response.setContentLength(length);
response.flushBuffer();
//关闭流
buffInputStream.close();
stream.close();
outputStream.close();
log.info("文件导出:"+fileUrl);
} catch (Exception ex) {
log.info("导出失败:"+ex.getMessage());
ex.printStackTrace();
}
}
- 前端代码
windows.open("http://127.0.0.1:9000/file?fileName=test.doc&fileUrl=/2022/2/1/test.doc");
希望能帮到你
版权声明:本文标题:Java实现minio文件流下载文件,浏览器不下载 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726114075a1055917.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论