Berthou.comJava, DB2, Websphere, apache, ma vision de l’informatique… | |
|
29
sept
Servlet – zipservletAuteur : rberthouDescription Cette petite servlet vous permet de recevoir dans un fichier zip le contenu d’une URL donnée en paramètre. Nous vous montrons donc comment créer et envoyer un fichier zip à l’utilisateur. Principe de fonctionnement
Code package javaside.servlet.sample ; /** * zipservlet.java * * Main class for sample servlet * * @author : R. BERTHOU * URL : http://www.berthou.com/ * ----------------------------------------------------------- * Ver * Author * DATE * Description * ....................DD/MM/YY............................... * 1.00 * R.BERTHOU * 12/01/01 * **********************************************************/ import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.zip.*; import java.net.*; import java.util.*; public class zipservlet extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { byte b[]=new byte[300000]; URL url; String temp; ByteArrayOutputStream bout=new ByteArrayOutputStream(); ZipOutputStream zout=new ZipOutputStream(bout); ServletOutputStream out = res.getOutputStream(); ServletContext servletContext = getServletContext(); if ((temp=req.getParameter("url"))!=null) { try { url=new URL(temp); URLConnection uc = url.openConnection(); DataInputStream input = new DataInputStream(uc.getInputStream()); int numRead=0; int size=0; while (numRead != -1) { numRead = input.read(b,size,20000); size+=numRead; } zout.putNextEntry(new ZipEntry("file.html")); zout.write(b,0,size); zout.closeEntry(); zout.finish(); String zip=bout.toString(); res.setContentType("application/zip"); res.setHeader("Content-Disposition","inline; filename=output.zip;"); out.println(zip); out.flush(); } catch (Exception e) { res.setContentType("text/html"); out.println("<html><head></head>"); out.println("<body><b>"); out.println("An error has occured while processing "+temp+""); out.println("Here is the exception: "+e+""); e.printStackTrace(new PrintWriter(out)); out.println("</body>"); out.println("</html>"); } } } } |
CatégoriesMots-clefsapplet
architecture
certificat
chart
css
db2
design
dhtml
exemple
formulaire
graph
ibm
illacrimo
itext
java
javascript
jboss
jeux
jquery
linux
mainframe
migration
multilingue
mysql
OpenSource
pdf
php
plugin
recherche
script
servlet
source
tchart
theme
topsy
twitter
web 2.0
webdesign
websphere
wordpress
www
zip
Articles récentsCommentaires récents |
|
| |
Très bonne source.
Par contre l’url passée en paramètre ne peut être qu’un fichier html à ce que je vois et la page ne peut dépassée 300000 octets soit 300 Ko, ce qui peut être limitant.
Rien de bien grave, facilement modifiable à la main.
Merci pour ce petit ^bout de code bien pratique ^^
Oui pour des raisons de simplicité, le but de ce source est de proposer un exemple d’utilisation. C’est une base pour réaliser un développement plus complexe.
Ajouter une réponse