IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

FTPClient, upload de stream


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut FTPClient, upload de stream
    Bonjour,

    Je souhaite uploader sur un serveur ftp un fichier .xml généré au préalable sous la forme d'un ByteArrayInputStream. Cela fonctionne plutôt bien. Rien n'est écrit sur le disque.

    Seulement, ce fichier xml généré peut être assez lourd, je souhaite donc le mettre en un fichier zip, et la je bloque.

    Je ne vois pas comment créer un fichier zip puis l'uploader avec la méthode storeFile(String remote, InputStream local) de FTPClient (org.apache.commons.net.ftp.FTPClient).

    Voilà un bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    private ByteArrayInputStream zipData(StringWriter writer) {
    		int size = 0;
    		byte[] buffer = new byte[1024];
     
    		ByteArrayInputStream in = new ByteArrayInputStream(writer.toString().getBytes());
     
    		ZipEntry entry = new ZipEntry("test.zip");
     
    		ByteArrayOutputStream out = new ByteArrayOutputStream();
    		ZipOutputStream zos = new ZipOutputStream(out);
     
    		CheckedOutputStream checksum = new CheckedOutputStream(out, new Adler32());
     
    		zos = new ZipOutputStream(new BufferedOutputStream(checksum));
     
    		try {
    			zos.putNextEntry(entry);
    			zos.write(writer.toString().getBytes());
     
    			// copier et compresser les données
    			while ((size = in.read(buffer, 0, buffer.length)) > 0) {
    				zos.write(buffer, 0, size);
    			}
     
    			in.close();
    			in = new ByteArrayInputStream(zos.toString().getBytes());
     
    			zos.closeEntry();
     
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
     
    		return in;
    	}
    Mais le zip uploadé est corrompu, il ne pèse qu'un Ko. Bref, je ne vois pas comment faire :/

    Merci de votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Il est pas corrompu, si tu l'ouvres avec le notepad il contient quelque chose comme :

    Code plaintext : Sélectionner tout - Visualiser dans une fenêtre à part
    java.util.zip.ZipOutputStream@3e25a5

    C'est pas de la corruption, c'est juste que tu as envoyé ça tel que.

    Qu'est-ce que tu espérais faire avec zos.toString ? Ça n'a pas de sens...
    Tes données compressées sont dans out, après avoir appelé close() dessus, bien sûr. Il faut utiliser out.toByteArray()
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/05/2009, 13h44
  2. [ICS] -> Problème d'upload avec FtpClient ?
    Par [ZiP] dans le forum Web & réseau
    Réponses: 3
    Dernier message: 21/05/2009, 09h42
  3. upload stream et video
    Par Poulain dans le forum Services Web
    Réponses: 3
    Dernier message: 26/02/2008, 19h00
  4. [Upload] Failed to open stream
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2007, 10h33
  5. iis, objet stream et upload
    Par bmayer dans le forum ASP
    Réponses: 3
    Dernier message: 07/10/2004, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo