001: /**
002: * <p>
003: * Title: Connection
004: * </p>
005: *
006: * <p>
007: * Description: Represente une entite image (fichier d'extension bmp,gif,jpeg par ex ...)
008: * </p>
009: *
010: * <p>
011: * Copyright: Copyright (c) 2005
012: * </p>
013: *
014: * commentaire inutile
015: *
016: * <p>
017: * Company:
018: * </p>
019: *
020: * @author Adlani Anouar - Detante Antoine - Klein Gregory - Pepin Pierre
021: * @version 1.0
022: */package httpserver;
023:
024: import java.io.*;
025: import java.util.Date;
026:
027: public class EntiteImage extends EntiteHTTP {
028: // tableu de byte qui contiendra le contenu de l'image
029: private byte[] contenuEntite;
030:
031: /**
032: * Créer une instance vide de EntiteImage
033: */
034: public EntiteImage() {
035: super .type = "image";
036: }
037:
038: /**
039: * Créer une instance de EntiteImage
040: * @pram contenuEntite byte[]
041: */
042: public EntiteImage(byte[] contenuEntite) {
043: super .type = "image";
044: this .contenuEntite = contenuEntite;
045: }
046:
047: /**
048: * Remplit le tableau de byte contenuEntite avec les données de l'image
049: * @param nomFichier String nom de l'image
050: * @return EntiteImage Contenu de l'image
051: * @throws IOException en cas d'erreur de lecture du fichier
052: */
053: public static EntiteImage getFromFile(String nomFichier)
054: throws IOException {
055: File fichier = new File(nomFichier);
056: FileInputStream fileInput = new FileInputStream(fichier);
057: byte buffer[] = new byte[fileInput.available()];
058: fileInput.read(buffer);
059: return (new EntiteImage(buffer));
060: }
061:
062: /**
063: * Envoie l'entite au client
064: * @param out OutputStream flux d'envoi pour le client
065: * @throws IOException en cas d'erreur d'envoi
066: */
067: public void envoyerEntite(OutputStream out) throws IOException {
068: out.write(this .contenuEntite);
069: }
070:
071: /**
072: * Créer une chaine de caractère avec l'entité
073: * @return String l'entité
074: */
075: public String toString() {
076: return new String(contenuEntite);
077: }
078:
079: /**
080: * Methode d'obtenir l'entité image.
081: * @param nomFichier String nom de l'image
082: * @return EnteteEntite l'entité image
083: */
084: public EnteteEntite getEnteteEntite(String nomFichier) {
085: EnteteEntite entete = new EnteteEntite();
086: File fichier = new File(nomFichier);
087: int fileLength = 0;
088: long dateModif;
089: String dateStr;
090: try {
091: fileLength = (int) fichier.length();
092: dateModif = fichier.lastModified();
093: Date date = new Date(dateModif);
094: dateStr = new String(date.toGMTString());
095: entete.setContentLength("" + fileLength);
096: entete.setLastModified(dateStr);
097: } catch (SecurityException e) {
098:
099: }
100: entete.setAllow("GET, HEAD");
101: entete.setContentType(this.type);
102: return entete;
103: }
104: }
|