Bonjour à tous!
Je dois, dans le cadre de mon stage, réaliser une application Java. J'ai déjà, en partie grâce au forum, réalisé diverses fonctionnalités de cette application.
Cependant, je butte sur le point précisé dans le sujet: je n'arrive pas à envoyer de fichier en POST via une URL.
J'ai déjà certaines pistes sur le forum, notamment concernant la bibliothèque HttpClient que j'ai insérée dans mon projet.
Par contre, j'essaie d'utiliser certaines méthodes indiquée sur le forum et j'ai l'impression que celles-ci sont dépréciées. J'ai également trouvé qu'on pouvait les remplacer mais je n'y suis pas parvenu.
J'avais trouvé ça:
Mais mon eclipse me dit que MultipartPostMethod est déprécié et je n'arrive pas à la remplacer malgré la doc
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 HttpClient client = new HttpClient(); MultipartPostMethod mPost = new MultipartPostMethod(url); // Send any XML file as the body of the POST request File f1 = new File("C:/aa.jpg"); try { mPost.addParameter("monFichier", f1); } catch (FileNotFoundException e) { // TODO Bloc catch auto-généré e.printStackTrace(); } try { int statusCode1 = client.executeMethod(mPost); if (statusCode1 == HttpStatus.SC_OK) { appendMessage( "Upload complete, response=" + mPost.getResponseBodyAsString() ); } else { appendMessage("Upload failed, response=" + HttpStatus.getStatusText(statusCode1) + " "+mPost.getResponseBodyAsString() ); } } catch (HttpException e) { // TODO Bloc catch auto-généré e.printStackTrace(); } catch (IOException e) { // TODO Bloc catch auto-généré e.printStackTrace(); } System.out.println("statusLine>>>" + mPost.getStatusLine()); mPost.releaseConnection(); System.out.println("OK");
Le fichier était récupéré avec ce code php :
Si vous avez des idées de corrections ou carrément d'autres pistes, je suis preneur car là je sèche complètement et j'ai déjà perdu pas mal de temps...
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 TEST <br> <?php // BIIEN CHANGER monFichier selon parametre mis dans JAVA if(isset($_FILES['monFichier'])) { unset($erreur); $extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); $taille_max = 1000000; // DOSSIER DESTINATION $dest_dossier = 'photo/'; // utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/'; // vérifications if( !in_array( substr(strrchr($_FILES['monFichier']['name'], '.'), 1), $extensions_ok) ) { $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; } elseif( file_exists($_FILES['monFichier']['tmp_name']) and filesize($_FILES['monFichier']['tmp_name']) > $taille_max) { $erreur = 'Votre fichier doit faire moins de 500Ko !'; } // copie du fichier if(!isset($erreur)) { $dest_fichier = basename($_FILES['monFichier']['name']); // formatage nom fichier // enlever les accents $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // remplacer les caracteres autres que lettres, chiffres et point par _ $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier); // copie du fichier move_uploaded_file($_FILES['monFichier']['tmp_name'], $dest_dossier.$dest_fichier); echo($_FILES['monFichier']['tmp_name']); } else{ echo($erreur); } } ?>
Merci d'avance et bon courage à tous!
@+
Thomas.
Partager