• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

javaweb文件打包批量下载代码

java 搞代码 4年前 (2022-01-05) 25次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了javaweb文件打包批量下载代码,批量下载未批改作业,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了javaweb文件打包批量下载,供大家参考,具体内容如下

 // 批量下载未批改作业 @RequestMapping(value = "/downloadAllHomework", method = RequestMethod.GET) public void downloadAllHomework(HttpSession httpSession, HttpServletRequest request, HttpServletResponse response, String assignmentid, int classCode) throws Exception { Site site = (Site) httpSession.getAttribute("site"); String siteid = site.getId(); // 根据作业ID获取作业详细信息 AssignmentDetail assignmentDetail = assignmentServiceWS.getAssignmentDetail(assignmentid); generateParameters(assignmentDetail); // 信息不完整,后面需要填充。 List assignmentSubmitList = assignmentServiceWS.getSubmitedAssignmentStudent(assignmentid); // 获取所有的submitid List submitids = new ArrayList(); for (int i = 0; i  assignmentSubmits = new ArrayList(); for (String a : submitids) { AssignmentSubmit as = assignmentServiceWS.getSubmitAssignment(a); assignmentSubmits.add(as); } // 给每个已提交作业的学生配一个map,userName-->AssignmentSubmit Map studentSu<mark style="color:transparent">来源gaodaimacom搞#代%码网</mark>bmitMap = new HashMap(); for (AssignmentSubmit assignmentSubmit : assignmentSubmits) { String studentID = assignmentSubmit.getUserName(); studentSubmitMap.put(studentID, assignmentSubmit); } // 根据班级号获取该班所有学生的学号,再根据学号获取详情列表 List assignmentStudentList = new ArrayList(); List studentList = memberServiceWS.getStudents(siteid, classCode); for (MemberVO student : studentList) { String userName = student.getId(); String realName = student.getName(); AssignmentSubmit assignmentSubmit = new AssignmentSubmit(); if (studentSubmitMap.get(userName) != null) { assignmentSubmit = studentSubmitMap.get(userName); } assignmentSubmit.setRealName(realName); assignmentSubmit.setUserName(userName); generateA(assignmentSubmit); assignmentStudentList.add(assignmentSubmit); } List submitedList = new ArrayList(); for (AssignmentSubmit as : assignmentStudentList) { if (as.getGradePoint() == null && as.getAssignmentID() != null) submitedList.add(as); } List files = new ArrayList(); File file = new File("d:/css.rar"); if (!file.exists()) { file.createNewFile(); } response.reset(); // response.getWriter() // 创建文件输出流 FileOutputStream fous = new FileOutputStream(file); // 打包的方法我们会用到ZipOutputStream这样一个输出流, 所以这里我们把输出流转换一下 ZipOutputStream zipOut = new ZipOutputStream(fous); for (AssignmentSubmit a : submitedList) { for (AttachIDs aa : a.getAttachIDs()) { try { String fileId = aa.getId(); String cloudFileUrl = "http://xxx.xxx.xxx.xxx:8066/ImageService/DownloadFile/"; String fileUrl = announceService.getAttachmentByFileid(fileId).getUrlUpload(); fileUrl = fileUrl.substring(fileUrl.lastIndexOf("/") + 1); fileUrl = cloudFileUrl + fileUrl; String fileName = announceService.getAttachmentByFileid(fileId).getName(); // 获取远程文件的文件名。 // response.addHeader("Content-Disposition", "attachment;filename=" + // new String(fileName.getBytes("gbk"), "iso-8859-1")); // iso-8859-1 ZipEntry entry = new ZipEntry(new String(fileName.getBytes("gbk"), "iso-8859-1")); zipOut.putNextEntry(entry); URL urlfile = null; HttpURLConnection httpUrl = null; urlfile = new URL(fileUrl); httpUrl = (HttpURLConnection) urlfile.openConnection(); httpUrl.connect(); InputStream downloadFile = httpUrl.getInputStream(); int len = 0; byte[] buf = new byte[1024]; while ((len = downloadFile.read(buf, 0, 1024)) != -1) { zipOut.write(buf, 0, len); } } catch (JSONException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } zipOut.close(); fous.close(); downloadZip(file, response); } // 把接受的全部文件打成压缩包 public static HttpServletResponse downloadZip(File file, HttpServletResponse response) { try { // 以流的形式下载文件。 InputStream fis = new BufferedInputStream(new FileInputStream(file.getPath())); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); OutputStream toClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream"); // 如果输出的是中文名的文件,在此处就要用URLEncoder.encode方法进行处理 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), "UTF-8")); toClient.write(buffer); toClient.flush(); toClient.close(); } catch (IOException ex) { ex.printStackTrace(); } finally { try { File f = new File(file.getPath()); f.delete(); } catch (Exception e) { e.printStackTrace(); } } return response; } 

博客地址!http://oldriver.top/ 老司机技术手册

以上就是javaweb文件打包批量下载代码的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:javaweb文件打包批量下载代码
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址