Cet article a partagé les exemples d'emballage de fichiers Javaweb et de téléchargement par lots pour votre référence. Le contenu spécifique est le suivant
// Téléchargement par lots non résolus @RequestMapping (value = "/ downloadAllHomework", méthode = requestMethod.get) public void downloadAllHomework (httpSession httpSession, httpservletRequest request, httpservletResponse réponse, string t oursid, int classcode) exception {site site = (site) httpSession.GetAtTraut String SiteID = Site.getId (); // Obtenez les détails du travail en fonction de l'identification de l'identification du travail AffectationDetail AffectationDetail = AffectageServicews.getAssIgnmentDetail (affectationId); GenerateParameters (affectationDetail); // Les informations sont incomplètes et doivent être remplies plus tard. List <affectmentsUbmitList = affectmentservicews.getSubMitedSignmentStudent (affectationId); // Obtenez toutes les listes de soumis <string> soumides = new ArrayList <string> (); for (int i = 0; i <affementsUbmitList.size (); i ++) {String soumeDID = affectmentsUbmitList.get (i) .getId (); if (soumid == null || soumid == "") continuer; SoumisIDS.Add (SoumidId); } // Obtenez la liste des détails de soumission <ffectmentsUbMits> AffectationsBmits = new ArrayList <ffectmentsUbmit> (); pour (String A: SmisIdS) {AffectationsBmit AS = AffectationsVicews.getSumbmitSignment (A); affectationsBmits.add (AS); } // Attribuez à chaque étudiant qui a soumis la mission une carte, nom d'utilisateur -> affectationstumit map <string, theffentsUbmit> studentsUbmitmap = new hashmap <string, thewsubmit> (); for (affectmentsUbmit affetsationsBit: affectmentsUbMits) {String StudentID = AffectationsBit.getUsername (); StudentsUbmitMap.put (StudentID, AffectationsBmit); } // Obtenez l'ID étudiant de tous les élèves de la classe en fonction du numéro de classe, puis obtenez la liste détaillée basée sur la liste d'ID d'étudiant <ffectmentsUbmit> affectationStudentList = new ArrayList <DistmentsUbmit> (); List <membervo> studentList = membreServicews.getSudents (SiteId, classcode); pour (Membervo Student: StudentList) {String username = Student.getId (); String realName = Student.getName (); AffectationsBit AffectationsBit = new AffectationsBmit (); if (StudentsUbmitMap.get (nom d'utilisateur)! = null) {AffectationsBit = StudentsUbmitMap.get (nom d'utilisateur); } affectationsBmit.SetRealName (realName); AffectationsBit.SetUsername (nom d'utilisateur); generatea (affectationstumit); affectationStudentList.add (affectationstumit); } List <affectmentsUbmit> soumidList = new ArrayList <affectmentsubmit> (); pour (affectationsBMit AS: AssignmentStudentList) {if (as.getgradepoint () == null && as.getAssIgnmentId ()! = null) soumidList.add (as); } List <FichE> files = new ArrayList <Fichier> (); File file = new File ("d: /css.rar"); if (! file.exists ()) {file.createenewfile (); } réponse.reset (); // Response.getWriter () // Créer un flux de sortie File FileOutputStream Fus = new FileOutputStream (fichier); // Dans la méthode emballée, nous utiliserons un flux de sortie comme ZipOutputStream, donc nous convertissons ici le flux de sortie ZipOutputStream Zipout = new ZipOutputStream (FOU); pour (affectationsUbmit a: soumidList) {for (attachIdS aa: a.getAttachids ()) {try {String FileID = aa.getId (); String cloudFileUrl = "http://xxx.xxx.xxx.xxx:8066/imageservice/downloadfile/"; String FileUrl = ANNONCEMENTService.getAttachmentByFileId (FileID) .getUrlupload (); fileUrl = fileUrl.substring (fileUrl.lastIndexof ("/") + 1); fileUrl = cloudFileUrl + fileurl; String filename = ANNONCEMENTService.getAttachmentByFileId (FileId) .getName (); // Obtenez le nom de fichier du fichier distant. // Response.AddHeader ("Content-Disposition", "Pixe; FileName =" + // new String (filename.getBytes ("GBK"), "ISO-8859-1")); // ISO-8859-1 Zipentry Entry = new Zipentry (nouvelle chaîne (filename.getBytes ("gbk"), "ISO-8859-1")); zipout.putNextStry (entrée); Url urlfile = null; Httpurlconnection httpurl = null; urlFile = new URL (fileUrl); httpurl = (httpurlconnection) urlfile.openconnection (); httpurl.connect (); InputStream DownloadFile = httpurl.getInputStream (); int len = 0; octet [] buf = nouveau octet [1024]; while ((len = downloadfile.read (buf, 0, 1024))! = -1) {zipout.write (buf, 0, len); }} catch (jSonException e) {e.printStackTrace (); } catch (UnportEnCcodingException e) {e.printStackTrace (); }}}} zipout.close (); fous.close (); DownloadZip (fichier, réponse); } // Faire tous les fichiers acceptés en packages compressés publics statiques httpservletResponse downloadzip (fichier de fichier, réponse httpservletResponse) {try {// Téléchargez le fichier sous la forme d'un flux. InputStream fis = new BufferedInputStream (new FileInputStream (file.getPath ())); octet [] buffer = nouveau octet [fis.available ()]; fis.read (tampon); fis.close (); // Réponse de réponse claire. Response.RESET (); OutputStream toClient = new BufferedOutputStream (Response.getOutputStream ()); Response.SetContentType ("Application / Octet-Stream"); // Si la sortie est un fichier avec un nom chinois, vous devez utiliser la méthode UrLencoder.encode pour traiter la réponse.sethEader ("Content-Disposition", "Pixe; FileName =" + urlencoder.encode (file.getName (), "utf-8")); toClient.write (tampon); toClient.flush (); toClient.close (); } catch (ioException ex) {ex.printStackTrace (); } enfin {try {file f = new file (file.getPath ()); f.delete (); } catch (exception e) {e.printStackTrace (); }} Retour Response; }Adresse du blog! http://oldriver.top/ Manuel technique des anciens conducteurs
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.