Aide débutant !

Résolu
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 - 29 mai 2008 à 13:29
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 - 29 mai 2008 à 21:51
Bonjour,
J'ai réussi à intégrer dans mon applet le code qui suit. Cependant, est-ce que quelqu'un pourrait m'eclaircir sur la façon dont il fonctionne? En fait, le but de mon applet c est de lire un fichier côté client, de le modifier et de l'envoyer par la méthode POST à une page web. Ce code permet la derniere étape: l'envoi par POST.
Alors voilà mes quelques questions:
- Tout d'abord quand je crée un File (1ere ligne) que doit valoir chemin? que vaut this?
- Ensuite dans Part : Comment dois-je définir la variable fichier?

                    File file_destination = new File(this.chemin);

                    PostMethod methodePost = new PostMethod("http://www.monsite.com/index.php");

                    Part[] parts={   new StringPart("login", "test"),
                                     new FilePart("fichier", fichier) };

                    methodePost.setRequestEntity(new MultipartRequestEntity(parts, methodePost.getParams()) );

                    HttpClient client = new HttpClient();
                    client.executeMethod(methodePost);

Voilà,
Merci d'avance pour votre aide,

FF

6 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
29 mai 2008 à 15:11
Salut:

- Tout d'abord quand je crée un File (1ere ligne) que doit valoir chemin? que vaut this?

this : est une référence sur l'objet courant.
this.chemin : indique l'attribut [chemin] de l'objet courant. Suppons que tu as une méthode quelconque tu as un paramètre ayant le même nom que cet attribut.

public void method(String chemin) {
    // ...
}

Pour pouvoir différencier entre l'attribut et ce paramètre on utilise this.chemin.

public void method(String chemin) {
    // Ici on est en train de manipuler le paramètre de la méthode

    chemin = ...;

    // Ici on est on train de manipuler l'attribut
    this.chemin = ...;

    // Un autre exemple
    this.chemin = chemin;

}

- Ensuite dans Part : Comment dois-je définir la variable fichier?

Comme je n'ai pas un code devant moi, je ne peux pas te répondre.
3
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
29 mai 2008 à 17:06
Ok merci,
Je comprends. J'ai fait quelques modifications pour faciliter les choses. En fait, je vais envoyer le contenu du fichier par POST et le créer par après en PHP. Donc plus besoin de la ligne "File ..." Par contre, là il me semble que tout est correct, mais quand je teste le programme, une fois que j'ai choisi le fichier et cliquer sur OK, la console me met cette erreur:

Exception in thread "AWT-EventQueue-1" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException

Voilà mon code. Si tu pouvais m'aider ce serait super.

package cryptage;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

import org.apache.commons.httpclient.*; // la librairie a dû être téléchargé et ajoutée au projet.
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.*;

public class Cryptage extends JApplet implements ActionListener
{
    JButton button1 = new JButton();
    boolean successful=true;
    JOptionPane jop = new JOptionPane();
 
    public void init()
    {
        button1.setLabel("Parcourir...");
        this.getContentPane().add(button1, BorderLayout.SOUTH);
        button1.setBounds(20,200,98,30);
        button1.addActionListener(this);
    }
 
 
    public void actionPerformed(ActionEvent ae)
    {
        if(ae.getSource().equals(button1))
        {
            String contenu = null;
            String contenu_crypte = null;
            String temp = null;
            int i = 0; //nb de lignes
           
            try
            {
                    JFileChooser fileDialog = new JFileChooser( );
                    int retour = fileDialog.showSaveDialog(this); // 1 si aucun fichier soumis, sinon 0
                    fileDialog.show( );
                    System.out.println(fileDialog.getSelectedFile());
                    FileReader fichier = new FileReader(fileDialog.getSelectedFile());
                    BufferedReader br = new BufferedReader(fichier);
                    temp = new String();
                    contenu = new String();
                   
                    while((temp = br.readLine()) != null)
                    {
                        contenu = contenu + "\n" + temp;
                        i++;
                        //System.out.println(i+": "+contenu);
                    }
                    System.out.println(contenu);
                   
                    /* Cryptage */
                    contenu_crypte = contenu;
                    /* Fin Cryptage */

                    PostMethod methodePost = new PostMethod("http://www.monsite.com/index.php");

                    Part[] parts={   new StringPart("nom", "test")
                                             new StringPart("fichier", contenu_crypte) };

                    methodePost.setRequestEntity(new MultipartRequestEntity(parts, methodePost.getParams()) );

                    HttpClient client = new HttpClient();
                    client.executeMethod(methodePost);

                    //affiche la réponse du serveur
                    System.out.println(new String(methodePost.getResponseBody()));
            }
            catch(IOException e)
            {
                System.out.println("Erreur IOException!");
                e.printStackTrace(); // affiche les infos sur l erreur
            }
        }
    }
}
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
29 mai 2008 à 20:56
Salut:

Il s'agit d'une applet normalement tu dois utiliser un navigateur pour la visualiser ou bien l'outil AppletViewer.
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
29 mai 2008 à 21:01
Salut,
Merci pour ta réponse.
Je suis sous Eclipse et je fais ctrl+F11 et il ouvre mon projet avec l'AppletViewer. En fait, il ne m'affiche aucune erreur de compilation et à l'exécution, c est quand il arrive à la ligne PostMethod qu'il m'affiche des erreurs dans la console.
Tu penses que si j'intègre l'applet à une page web l'erreur disparaîtra? Parce que mon code demande l'ouverture d'une page web, alors peut-être que l'AppletViewer ne sait pas le faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
29 mai 2008 à 21:44
Salut:

Tu as bien fait d'exécuter ton applet à partir d'Eclipse.

Je pense que tu dois inclure le JAR de l'API HttpClient lors de la déclaration de l'applet (A toi de vérifier le nom exacte de du fichier JAR de l'API HttpClient, personnellement, j'ai la version 3.1.0):
>
                
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
29 mai 2008 à 21:51
Ok merci,
je testerai ça demain, parce que là j'ai pas trop le temps (test d'histoire demain :-S )
Je donnerai des nouvelles demain soir.
Donc ce que tu me dis de faire c est de copier le commons....jar sur mon serveur?
Je suis pas encore vraiment au point sur la manière pour intégrer mon applet. Le .class je le prend dans le dossier bin?
ce code dans la page html et ça devrait être bon?
0
Rejoignez-nous