Problème envoie image + redimenssionnement : marche pas - PHP - Programmation
Marsh Posté le 27-06-2006 à 17:30:38
Si tu as cette erreur c'est que ton
Code :
|
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 :
|
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 :
<!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é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épartement de ré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é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!