Envoi d'une image en java, reception et upload en php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoi d'une image en java, reception et upload en php

par Ryle » 13 mars 2009, 17:36

Modération :
grisouil, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Envoi d'une image en java, reception et upload en php

par grisouil » 13 mars 2009, 15:39

Bonjour,
je cherche à réaliser un fichier de réception d'image en php à partir d'un envoi d'une application java.
Mon pb est que je reçois pas d'information concernant l'image !
L'envoi se fait en post, je sais que l'appli java communique avec mon fichier d'upload car j'ai des traces qui reçoivent des informations textes, mais aucune information reçu dans les $_file.
Voici mon code pour l'upload :
Une idée ?
<?php

if($_SERVER['HTTP_HOST'] == "127.0.0.1")
{
$url = "http://127.0.0.1/essai//image/".$_FILES["file"]["name"]; // Fichier Destination - DOIT EXISTER !
}


// lecture des header renvoyés
$header = get_headers($url);


// un str-replace tout pourri pas optimisé
$nomFichier = $_FILES["file"]["name"];
$nomFichier1 = str_replace('é','e',$nomFichier);
$nomFichier2 = str_replace('è','e',$nomFichier1);
$nomFichier3 = str_replace('â','a',$nomFichier2);
$nomFichier4 = str_replace('à','a',$nomFichier3);
$nomFichier5 = str_replace('ê','e',$nomFichier4);
$nomFichier6 = str_replace('ë','e',$nomFichier5);
$nomFichier7 = str_replace('ï','i',$nomFichier6);
$nomFichier8 = str_replace('î','i',$nomFichier7);
$nomFichier9 = str_replace('û','u',$nomFichier8);
$nomFichier10 = str_replace('ù','u',$nomFichier9);
$nomFichier11 = str_replace('ü','u',$nomFichier10);
$nomFichier12 = str_replace('ç','c',$nomFichier11);
$nomFichier = str_replace(' ','_',$nomFichier12);
$chemin_image = $nomFichier;



if ($_FILES['file']['error'])
{
switch ($_FILES['file']['error'])
{
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
error_log("UPLOAD_ERR_INI_SIZE : ".$_FILES['file']['error'], 0);
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
error_log("UPLOAD_ERR_FORM_SIZE : ".$_FILES['file']['error'], 0);
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
error_log("UPLOAD_ERR_PARTIAL : ".$_FILES['file']['error'], 0);
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
error_log("UPLOAD_ERR_NO_FILE : ".$_FILES['file']['error'], 0);
break;
}
}
else
{
//vaut 0 soit UPLOAD_ERR_OK
// ce qui signifie qu'il n'y a eu aucune erreur
echo "error : ".$_FILES['file']['error']."<br>";
}



?>
<html>
<head>

<title>Upload d'image ou de Fichiers.</title>
<style type="text/css">
body{ color: #333; font: 10px 'Lucida Grande', Verdana; }
</style>
</head>
<body topmargin="0">
<?php

//Définition des variables :
ini_set( 'register_globals' , 0 ); // permet de récupérer les variables $size, $width, $height
$MAX_SIZE = 2097152;
// Taille maximum du fichier (ici : 2MO)
// Fichier Destination - DOIT EXISTER !
if($_SERVER['HTTP_HOST'] == "127.0.0.1")
{
$DESTINATION_FOLDER = $_SERVER["DOCUMENT_ROOT"]."/essai/image/"; // Fichier Destination - DOIT EXISTER !
}

$AUTH_EXT = array(".jpg", ".png", ".jpeg", ".gif", ".JPEG", ".JPG", ".GIF", ".PNG"); // types de fichiers supportés
$RETURN_LINK = $_SERVER['HTTP_REFERER']; // Récupère la variable $_SERVER['HTTP_REFERER'] pour createReturnLink()
$chaine = code_aleatoire(); // Définit un code aléatoire pour l'image
$poidsFichier = 0; // On définit $poids fichier à 0 pour que le script ne plante pas si aucun fichier n'est choisi.


if(!empty($_FILES["file"]["name"]))
{
// si la variable $_FILES["file"]["name"] n'est pas vide
// cela veut dire que le server reçoit l'info qu'un fichier est
// envoyé, on définit donc les variables relative au fichier
$nomTemporaire = $_FILES["file"]["tmp_name"] ;
$nomFichier = $_FILES["file"]["name"] ; // nom du fichier uploadé
$typeFichier = $_FILES["file"]["type"] ;
$poidsFichier = $_FILES["file"]["size"] ; // poids en Octets
$poidsFichierK = $poidsFichier/1024; // Convertion du poids fichi0er d'Octets en KOctets
$poidsFichierK = sprintf("%.0f", $poidsFichierK);
$codeErreur = $_FILES["file"]["error"] ;
$extension = strrchr($nomFichier, "."); // on récupère l'extentions
$size = GetImageSize($_FILES["file"]["tmp_name"]);
$width = $size[0];
$height = $size[1];
$ext = $size[2]; // donne le type de fichier reçu
$nomReelFichier = $chaine."_".$nomFichier;
// nom du fichier sur le server
}

// cette partie de code vérifie si l'extention du fichier est bien correcte vis à vis de sa signature
// si vous uploadez des fichiers autres que des gif, jpg, jpeg, bmp, png pensez à commenter ou supprimez ce if
// sinon ça ne marchera pas !

if ($ext xor 1 || $ext xor 2 || $ext xor 3){
echo $ext;
echo "<p align='center'>";
echo "format incorrect <br />";

createReturnLink();
echo "</p>";
exit();
}

// Définition des fonctions

// Création du raccouri de retour
function createReturnLink(){
global $RETURN_LINK;
echo "<a href='".$RETURN_LINK."' class='lien_blanc'>Retour</a><br>";
}

// regarde si l'extension du fichier est dans le tableau AUTH_EXT
function isExtAuthorized($ext){
global $AUTH_EXT;
if(in_array($ext, $AUTH_EXT)){
return true;
}else{
return false;
}
}

// Génère un code aléatoire de 5 caractères pour charques images
function code_aleatoire()
{
$alphabet = 'abcdefghijklmnopqrstuvwxyz';
$alphabet .= '1234567890';
$chaine = '';

for($i=0;$i < 5;$i++)
{
$chaine .= substr($alphabet,rand()%(strlen($alphabet)),1);
}
return $chaine;
}

// le le poids du fichier est diférent de 0
if($poidsFichier <> 0)
{
// si le poid di fichier n'est pas supérieur à la taille maximum
if($poidsFichier < $MAX_SIZE)
{
// si l'extension est reconnu et correct
if(isExtAuthorized($extension))
{
// deplacement du fichier avec copy, le fonction move_uploaded_file me générant une erreur
$uploadOk = copy($nomTemporaire, $DESTINATION_FOLDER.$chaine."_".$nomFichier);
if($uploadOk)
{
$tailleKo = $MAX_SIZE / 1000;
echo "<table width='900' align='center' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td>&nbsp;</td>
<td><br /></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><br />Taille : ".$tailleKo."</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><br />Chaine aléatoire : ".$chaine."</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><br />Nom du fichier : ".$_SERVER["DOCUMENT_ROOT"]."/essai/image/".$nomReelFichier."</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><br />Poids : ".$poidsFichierK." Ko</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><br />Width x Height : ".$width." x ".$height."</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>";

if($_SERVER['HTTP_HOST'] == "127.0.0.1")
{
echo "<td><br /><img src='http://127.0.0.1/essai/image/".$nomReelFichier."' width='200' border='0' /></td>";
}
echo "
<td>&nbsp;</td>
</tr>
</table>";
}
else
{
echo "<table width='900' align='center' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td>&nbsp;</td>
<td><br />UPLOAD KO</td>
<td>&nbsp;</td>
</tr>
</table>";
}
}
}
}
//trace et log
echo "destination + chaine + nom fichier : ".$DESTINATION_FOLDER.$chaine."_".$nomFichier;
error_log("destination + chaine + nom fichier : ".$DESTINATION_FOLDER.$chaine."_".$nomFichier, 0);
foreach($header as $elem => $valeur)
{
echo $elem." ".$valeur."<br />";
error_log("header : ".$elem." ".$valeur, 0);
}
error_log("tmp_name : ".$_FILES["file"]["tmp_name"], 0);
error_log("name : ".$_FILES["file"]["name"], 0);
error_log("type : ".$_FILES["file"]["type"], 0);
error_log("size : ".$_FILES["file"]["size"], 0);
error_log("error : ".$_FILES["file"]["error"], 0);

echo "nomFichier : ".$nomFichier;
echo "POST : ".$_POST["message"]."<br>";
error_log("POST : ".$_POST["message"], 0);
echo "tmp_name : ".$_FILES["file"]["tmp_name"]."<br>";
echo "HTTP_HOST : ".$_SERVER['HTTP_HOST']."<br>";
echo "<br>nom fichier sans accents : ".$chemin_image."<br>";
error_log("nom fichier sans accents : ".$chemin_image, 0);

echo "DOCUMENT_ROOT : ".$_SERVER["DOCUMENT_ROOT"]."<br>";
error_log("DOCUMENT_ROOT : ".$_SERVER["DOCUMENT_ROOT"], 0);
echo "repertoire : ".$DESTINATION_FOLDER."<br>";
error_log("repertoire : ".$DESTINATION_FOLDER, 0);
?>

</body>
</html>