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 :

Pb copie de fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Par défaut Pb copie de fichier
    Bonjour,
    J'ai un problème de copie de fichier
    Je récupère un FormFile de mon formulaire
    Et je veut le copier sur le disque du serveur.
    La copie se passe bien mais le fichier est corrompu (j'upload des images et je ne peut plus les ouvrir.
    Quelqu'un pourrait-il me dire le problème qu'il y a dans mon code.

    Merci d'avance

    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
     
    File newFile = new File("c:\test\fichier.gif");
    OutputStream destinationFile = null;
    InputStream sourceFile = null;
    try {
       sourceFile = monForm.getFichier().getInputStream();
       destinationFile = new java.io.FileOutputStream(newFile);
     
       byte buffer[]=new byte[512*1024];
       int nbLecture;
       if(sourceFile.read() != -1){
          while( (nbLecture = sourceFile.read(buffer)) != -1 ) {
             destinationFile.write(buffer, 0, nbLecture);
          }
          destinationFile.close();
          sourceFile.close();
       }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }

  2. #2
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Par défaut
    Citation Envoyé par tentos
    Bonjour,
    J'ai un problème de copie de fichier
    Je récupère un FormFile de mon formulaire
    Et je veut le copier sur le disque du serveur.
    La copie se passe bien mais le fichier est corrompu (j'upload des images et je ne peut plus les ouvrir.
    Quelqu'un pourrait-il me dire le problème qu'il y a dans mon code.

    Merci d'avance

    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
     
    File newFile = new File("c:\test\fichier.gif");
    OutputStream destinationFile = null;
    InputStream sourceFile = null;
    try {
       sourceFile = monForm.getFichier().getInputStream();
       destinationFile = new java.io.FileOutputStream(newFile);
     
       byte buffer[]=new byte[512*1024];
       int nbLecture;
       if(sourceFile.read() != -1){
          while( (nbLecture = sourceFile.read(buffer)) != -1 ) {
             destinationFile.write(buffer, 0, nbLecture);
          }
       }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    Bonsoir,

    Je viens juste de me faire une petite méthode pour copie de fichier/s.

    Voici mon code... mais bon cela n'est peut-être pas ce que tu recherches. Enfin j'espère que cela pourra t'aider un peu.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
      /**
       * Copy a file.
       * @param p_sSource
       * @param p_sTarget
       * @return false if not copy file, otherwise return true
       */
      public boolean copyFile(String p_sSource, String p_sTarget) {
        // declaration
        // -----------
        boolean                  l_blnRtnVal = false;
        byte                     l_bytBuffer[];
        java.io.FileInputStream  l_fisSource;
        java.io.FileOutputStream l_fosTarget;
     
        try {
          if (isPresent(p_sSource)) {     // file/folder exist ?
            if (isFile(p_sSource)) {      // it's a file ?
              if (isReading(p_sSource)) { // access to read ?
                l_fisSource = new java.io.FileInputStream(p_sSource);
                l_fosTarget = new java.io.FileOutputStream(p_sTarget);
                l_bytBuffer = new byte[1024];
     
                int b_intByteRead = 0;
                while ((b_intByteRead = l_fisSource.read(l_bytBuffer)) != -1) {
                  l_fosTarget.write(l_bytBuffer, 0, b_intByteRead);
                }
     
                l_fisSource.close();
                l_fosTarget.close();
     
                l_blnRtnVal = true;
              }
              else {
                throw new Exception("The file <" + p_sSource + "> is protected!");
              }
            }
            else {
              throw new Exception("<" + p_sSource + "> is a folder!");
            }
          }
          else {
            throw new Exception("The file <" + p_sSource + "> not exists!");
          }
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
     
        return( l_blnRtnVal );  
      }

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Par défaut
    Merci pour ta répons mais mon problème vient du fait que j'upload mon fichier via un objet de type Formfile et non File.

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Par défaut
    Citation Envoyé par tentos
    Merci pour ta répons mais mon problème vient du fait que j'upload mon fichier via un objet de type Formfile et non File.
    Je sais... mais malheureusement je ne peux pas t'aider plus par manque de compétences.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    j'avoue que je n'ai pas tout lu, mais vu ta première ligne, ça semble mal parti...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File newFile = new File("c:\test\fichier.gif");
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File newFile = new File("c:\\test\\fichier.gif");
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Par défaut
    Autant pour moi.
    Cette partie est bonne j'ai enlever la méthode qui double les \\

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    A quoi te sert ce if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(sourceFile.read() != -1){
    Si ce n'est à perdre le premier octet du fichier ???

    Sinon pense à utiliser des try/finally pour la fermeture des fichiers...

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copie de fichier sur le bureau
    Par LoicH dans le forum C++Builder
    Réponses: 3
    Dernier message: 01/05/2005, 20h57
  2. [C#] Copie de fichier via l'API
    Par slyv dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/12/2004, 22h39
  3. [C#] Copie de fichier via l'API
    Par slyv dans le forum Windows
    Réponses: 5
    Dernier message: 20/12/2004, 22h35
  4. [Kylix] Copie de fichier...
    Par paty.olivier dans le forum EDI
    Réponses: 1
    Dernier message: 23/06/2004, 12h55
  5. Copie de fichier
    Par Bjorn dans le forum C
    Réponses: 4
    Dernier message: 11/06/2002, 15h23

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