/**
* 下载论文摘要
* @param lwdbPage
* @param response
* @param user
* @throws Exception
*/
@RequestMapping("/queryLwzyByDownload")
public void queryLwzyByDownload(LwdbPage lwdbPage, HttpServletResponse response, @AuthenticationPrincipal UserManagerEntity user) throws Exception {
ThreadAttributes.setThreadAttribute("dataAuth",user.getDataAuth());
ThreadAttributes.setThreadAttribute("roleCode",lwdbPage.getJsdm());
lwdbPage.setP_yhdm(user.getUsername());
lwdbPage.setP_yhid(user.getUsername());
lwdbPage.setP_jsdm(lwdbPage.getJsdm());
List<FileManager> loadFile = new ArrayList<FileManager>();
List<LwdbEntity> list = lwdbService.queryLwdbshList(lwdbPage);
for(LwdbEntity entity : list ){
FileManager fm = new FileManager();
fm.setSavename(entity.getLwzy());
fm.setFilename("14325_"+entity.getXh()+"_ZY.txt");
if(entity.getLwzy()!=null && !"".equals(entity.getLwzy())){
loadFile.add(fm);
}
}
if(loadFile.size()> 0){
lwdbService.downloadMutiFilesForDatabase(loadFile,"论文摘要" ,response );
}
}
public void downloadMutiFilesForDatabase(List<FileManager> fileManagerList,String fileName, HttpServletResponse response) throws Exception {
//FTPSClient ftpClient =null;
if(fileManagerList == null )
{
return;
}
ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream());
response.setCharacterEncoding("UTF-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="+ new String((fileName+".zip").getBytes("UTF-8"),"ISO-8859-1"));
for (FileManager e : fileManagerList){
if(e.getSavename() != null){
ZipEntry z=new ZipEntry(e.getFilename());//这是文件名例如"我的文件.txt"
zipOut.putNextEntry(z);
InputStream inputStream = new FileInputStream(new File(e.getFilename()));
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > -1) {
zipOut.write(buffer,0,len);
}
inputStream.close();
}
}
zipOut.flush();
zipOut.close();
}
Java 批量文件打包zip(不需要生成本地临时文件),并下载
于 2022-10-12 15:16:06 首次发布