Envoi de fichier en POST via une URL vers une page php

Tomtom56 Messages postés 2 Date d'inscription mercredi 4 mai 2011 Statut Membre Dernière intervention 21 juin 2011 - 20 juin 2011 à 16:39
Tomtom56 Messages postés 2 Date d'inscription mercredi 4 mai 2011 Statut Membre Dernière intervention 21 juin 2011 - 21 juin 2011 à 12:33
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:

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");

Mais mon eclipse me dit que MultipartPostMethod est déprécié et je n'arrive pas à la remplacer malgré la doc

Le fichier était récupéré avec ce code php :


TEST


<?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);
}
}
?>

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...

Merci d'avance et bon courage à tous!

@+

Thomas.

1 réponse

Tomtom56 Messages postés 2 Date d'inscription mercredi 4 mai 2011 Statut Membre Dernière intervention 21 juin 2011
21 juin 2011 à 12:33
Personne?
0
Rejoignez-nous