Problème envoie image + redimenssionnement : marche pas

Problème envoie image + redimenssionnement : marche pas - PHP - Programmation

Marsh Posté le 27-06-2006 à 16:56:03    

Bonjour,
 
je me suis inspiré de différents bouts de codes trovués sur la toile pour essayer d'envoyer une image et de redimensionner sa largeur pour qu'elle soit égale a 500pixels,
je suis arrivés à différents scripts, mais voici celui qui me semble le plus aboutit :
 

Citation :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>HFR</title>
</head>
 
<body>
<?
if(empty($_POST))
{
echo "<form method=\"post\">
  Pseudonyme :  
  <input type=\"text\" name=\"pseudonyme\" />
  <br />
  Mot de passe :  
  <input type=\"password\" name=\"motdepasse\" />
  <br />
  Pr&eacute;nom :  
  <input type=\"text\" name=\"prenom\" />
  <br />
  Nom :  
  <input type=\"text\" name=\"nom\" />
  <br />
  Date de Naissance (de la forme AAAA-MM-JJ) :  
  <input type=\"text\" name=\"naissance\" />
  <br />
  D&eacute;partement de r&eacute;sidence :  
  <input type=\"text\" name=\"departement\" />
  <br />
  Nom du serveur :  
  <input type=\"text\" name=\"serveur\" />
  <br />
  Adresse du serveur :  
  <input type=\"text\" name=\"adresse\" value=\"http://\" />
  <br />
Configuration mat&eacute;rielle du serveur :<br />
  <textarea name=\"configuration\" cols=\"60\" rows=\"10\"></textarea>
  <br />
  Utilisation du serveur :<br />
  <textarea name=\"utilisation\" cols=\"60\" rows=\"10\"></textarea>
  <br />
  Commentaire (occupations..) :<br />
  <textarea name=\"commentaire\" cols=\"60\" rows=\"10\"></textarea>  
  <br />
  Photo de votre serveur :  
  <input type=\"file\" name=\"serveur\" />
  <br />
  <input type=\"submit\" name=\"Submit\" value=\"Envoyer\" />
</form>";
}
 
else
{
$pseudonyme = $_POST['pseudonyme'];
$motdepasse = $_POST['motdepasse'];
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$naissance = $_POST['naissance'];
$departement = $_POST['departement'];
$serveur = $_POST['serveur'];
$adresse = $_POST['adresse'];
$configuration = $_POST['configuration'];
$utilisation = $_POST['utilisation'];
$commentaire = $_POST['commentaire'];
 
$extension1 = 'image/pjpeg';
$extension2 = 'image/jpeg';
$largeur_destination = 500;
 
$ext_img = $_FILES['serveur']['type'];
$tmp = $_FILES['serveur']['tmp_name'];
$infos_img = getimagesize($tmp);
 
$db = mysql_connect('localhost', '', 'l');
mysql_select_db('hfr',$db);
 
$verification = mysql_query("SELECT * FROM membres WHERE pseudonyme='$pseudonyme'" );
if (mysql_numrows($verification) == 0)
{
 
if(($ext_img == $extension)||($ext_img == $extension2))  
{
if(move_uploaded_file($tmp,"photos/".$pseudonyme."-serveur.jpg" ))
{  
$rapport = $infos_img[0] / $largeur_destination;
$hauteur_destination = $infos_img[0] / $rapport;
$source = imagecreatefromjpeg("photos/".$pseudonyme."-serveur.jpg" );
 
if($largeur_source > $largeur_destination)
{
$largeur_destination_f = $largeur_destination;
$hauteur_destination_f = $hauteur_destination;
}
else
{
$largeur_destination_f = $infos_img[0];
$hauteur_destination_f = $infos_img[1];
}
 
$im = ImageCreateTrueColor ($largeur_destination_f, $hauteur_destination_f);
ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeur_destination_f, $hauteur_destination_f, $infos_img[0], $infos_img[1]);
 
$fh=fopen("photos/".$pseudonyme.".jpg",'w');
fclose($fh);
ImageJpeg ($im,"photos/".$pseudonyme."-serveur.jpg",100);
 
}
else { echo "Erreur : envoie"; }
}
else { echo "Votre photo doit être au format JPG"; }
 
mysql_query("INSERT INTO membres(pseudonyme,motdepasse,prenom,nom,naissance,departement,serveur,adresse,configuration,utilisation,commentaire) VALUES('$pseudonyme','$motdepasse','$prenom','$nom','$naissance','$departement','$serveur','$adresse','$configuration','$utilisation','$commentaire')" );
 
}
 
else { echo "Ce pseudonyme existe déjà"; }
 
}
?>
</body>
</html>


 
Cela bloque dès le move uploaded file (j'ai Erreur : Envoie)
Le dossier dans lequel se trouve le script comporte un dossier photos dont le propriétaire est www-data
 
 
merci de votre aide!

Reply

Marsh Posté le 27-06-2006 à 16:56:03   

Reply

Marsh Posté le 27-06-2006 à 17:30:38    

Si tu as cette erreur c'est que ton

Code :
  1. move_uploaded_file($tmp,"photos/".$pseudonyme."-serveur.jpg" )


retourne faux!
Pourquoi?  
Relis cette page de la doc: http://fr.php.net/features.file-upload
Tu y trouveras ce que DOIT contenir un formulaire d'upload:

Citation :

Un formulaire de téléchargement de fichiers peut être construit en créant un formulaire spécifique comme ceci :

Code :
  1. <!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit -->
  2. <form enctype="multipart/form-data" action="_URL_" method="post">
  3.   <!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
  4.   <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  5.   <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES --> 
  6.   Envoyez ce fichier : <input name="userfile" type="file" />
  7.   <input type="submit" value="Envoyer le fichier" />
  8. </form>




Reply

Marsh Posté le 27-06-2006 à 20:07:36    

Merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed