java后端实现下载接口
public void download(HttpServletResponse response, String id) {
List<ProjectVo> projectList = projectManagemenet.getProjectList();
String filepath = "";
ServletOutputStream ops = null;
for (ProjectVo projectVo : projectList) {
if (projectVo.getUid().equals(id)){
File file = new File(path);
filepath = file.getParentFile() + "/" + projectVo.getPath();
response.setContentType("application/octet-stream");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(projectVo.getName()) +".sgp");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
File file1 = new File(filepath);
try {
InputStream inputStream = new FileInputStream(file1);
ops = response.getOutputStream();
IOUtils.copy(inputStream,ops);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
直接使用项目名作为文件名,因为项目名需要转码,所以使用java自带的URLEncoder.encode()进行转码
后端使用URLEncode进行编码传输的时候,传到前端还需要前端进行解码一下即可