Browse Source

修改下载方法

master
zhouhaibin 2 months ago
parent
commit
24b78eae59
  1. 31
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouUploadfileinfoController.java

31
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouUploadfileinfoController.java

@ -26,7 +26,11 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.WritableByteChannel;
import java.util.ArrayList;
import java.util.HashMap;
@RestController
@RequestMapping("/huzhouUploadfileinfo")
@ -49,10 +53,6 @@ public class HuzhouUploadfileinfoController {
path = "excelTemplate"+File.separator+path.substring(path.indexOf("/")+1);
ClassPathResource classPathResource = new ClassPathResource(path);
fileInputStream =classPathResource.getInputStream();
}else{
fileInputStream = new FileInputStream(path);
file = new File(path);
}
response.addHeader("content-disposition","attachment;filename="+URLEncoder.encode(fileName,"UTF-8")+";filename*=UTF-8''"+ URLEncoder.encode(fileName,"UTF-8"));
response.setContentType("application/octet-stream");
if(file!=null){
@ -78,6 +78,29 @@ public class HuzhouUploadfileinfoController {
inputStream.close();
}
}
}else{
file = new File(path);
try {
// 设置响应头
response.setHeader("content-disposition", "attachment;filename=" +
URLEncoder.encode(fileName, "UTF-8") +
";filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));
response.setContentType("application/octet-stream");
response.setContentLength((int) file.length());
// 使用NIO通道
try (FileChannel fileChannel = new FileInputStream(file).getChannel();
WritableByteChannel outputChannel = Channels.newChannel(response.getOutputStream())) {
// 使用transferTo方法直接传输数据
fileChannel.transferTo(0, file.length(), outputChannel);
}
} catch (Exception e) {
throw new RuntimeException("文件下载失败", e);
}
}
}
@GetMapping("/uploacFilePageList")

Loading…
Cancel
Save