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 :

renommer un fichier distant en java


Sujet :

Entrée/Sortie Java

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut renommer un fichier distant en java
    Bonjour à tous j'essaie depuis quelques temps à renommer un fichier situé sur un serveur http sans succès voilà ce que je fais:
    - j'upload mon fichier sur le serveur grace à ceci:
    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
     
    		DefaultHttpClient httpclient = new DefaultHttpClient();
    	    httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
     
    	    HttpPost httppost = new HttpPost("http://localhost/upload.php");
    	    File file = new File("D:\\bulletin2.pdf");
     
     
    	    MultipartEntity mpEntity = new MultipartEntity();
    		ContentBody cbFile = new FileBody(file, "document/pdf");
    	    mpEntity.addPart("userfile", cbFile);
     
    	    URL url=new URL("http://127.0.0.1/"+file.getName());
    	    System.out.println(url);
     
     
    	    httppost.setEntity(mpEntity);
    	    System.out.println("executing request " + httppost.getRequestLine());
    	    HttpResponse response;
    		try {
    			response = httpclient.execute(httppost);
    		    HttpEntity resEntity = response.getEntity();
     
    		    System.out.println(response.getStatusLine());
    		    if (resEntity != null) {
    		      System.out.println(EntityUtils.toString(resEntity));
    		    }
    		    if (resEntity != null) {
    		      resEntity.consumeContent();
    		    }
     
    		    httpclient.getConnectionManager().shutdown();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    A l'aide du code php suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
      echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
      move_uploaded_file ($_FILES['userfile'] ['tmp_name'], $_FILES['userfile'] ['name']);
    } else {
      echo "Possible file upload attack: ";
      echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
      print_r($_FILES);
    }
    ?>
    le problème c'est que le fichier uploader à le même nom que celui de départ, or je voudrait le renommer mais avec renameTo aucun resultat et j'aimerais savoir comment faire?
    Merci d'avance!
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pour la partie php, je ne sais pas si elle fait le job, mais en tout cas, pour la partie cliente, il faudrait passer le nom du fichier. Là, ce que tu fais c'est un upload de fichier, et tu ne passes que le nom du fichier d'origine (bulletin2.pdf) : il n'y a aucune raison qu'on puisse pouvoir renommer un fichier (lequel on renommerait ?) ou avoir un autre nom que celui d'origine (lequel serait-il ?).
    Avec le constructeur de FileBody à trois paramètres, le troisième paramètre te permet de passer un nom qui pourra être exploité par la partie serveur comme nom de destination.

    Si c'est juste pour renommer, en théorie, il n'est pas nécessaire de faire un upload : deux paramètres, le nom à modifier, le nom final, devraient suffire.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    voilà ce que je tente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ContentBody cbFile = new FileBody(file, "document/pdf","http://127.0.0.1/xxx.pdf");
    mais j'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Exception in thread "main" java.nio.charset.IllegalCharsetNameException: http://127.0.0.1/xxx.pdf
    	at java.nio.charset.Charset.checkName(Unknown Source)
    	at java.nio.charset.Charset.lookup2(Unknown Source)
    	at java.nio.charset.Charset.lookup(Unknown Source)
    	at java.nio.charset.Charset.forName(Unknown Source)
    	at org.apache.http.entity.ContentType.create(ContentType.java:234)
    	at org.apache.http.entity.mime.content.FileBody.<init>(FileBody.java:63)
    	at org.apache.http.entity.mime.content.FileBody.<init>(FileBody.java:76)
    	at Admin.Application.main(Application.java:48)
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par junior222 Voir le message
    voilà ce que je tente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ContentBody cbFile = new FileBody(file, "document/pdf","http://127.0.0.1/xxx.pdf");
    C'est un nom de fichier, pas une URL ! Par exemple "xxx.pdf"...

    Et normalement le contenttype pour un pdf, c'est application/pdf.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Le problème c'est aussi que le constructeur FileBody(File,String,String) est déprécié, et qu'il attend un charset en troisième argument et non pas le nom du fichier...
    Il est préférable d'utiliser le constructeur FileBody(File,ContentType,String) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ContentBody cbFile = new FileBody(file, ContentType.create("application/pdf"),"xxx.pdf");
    Remarque que c'est juste le nom tel qu'il est envoyé par le protocole HTTP.
    Le coté serveur peut très bien utiliser un autre nom pour le fichier...


    a++

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Août 2012
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 406
    Points : 235
    Points
    235
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    snip
    Merci ça marche super bien!
    La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!

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

Discussions similaires

  1. [DOM] Ecriture d'un fichier XML en java
    Par fidififouille dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 12/05/2004, 09h32
  2. include fichier distant
    Par noarno dans le forum ASP
    Réponses: 2
    Dernier message: 05/04/2004, 16h47
  3. Comment generer un fichier war dans java
    Par relivio dans le forum ANT
    Réponses: 4
    Dernier message: 12/03/2004, 13h43
  4. [DOM] est ce qu'on peut créer un fichier xml en java ?
    Par miloud dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 21/01/2004, 10h40
  5. MapPath et fichier distant
    Par arno_ dans le forum ASP
    Réponses: 8
    Dernier message: 16/09/2003, 16h06

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