|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Lun Déc 24, 2007 12:25 Sujet du message: Upload |
|
|
Bonjour,
Je possede un site avec un formulaire d'upload et je voudrais rendre optionnel "upload de l'image mais je ne sais pas comment faire" du style si il y a une image j'upload sinon je passe.
| Code: |
$destination="./fichiers/";
$pourcent="50";
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'JPG') && !strstr($type_file, 'JPEG'))
{
exit("<img src=\"images/warning.gif \" ><b>L'extension de votre photo n'est pas un JPG ou JPEG merci de resaisir le formulaire avec la bonne extension <a class=\"liens_bleu\" href=\"ajoute-petite-annonce-avec-photo.php\">RETOUR</a></b>");
}
$fichier_name = time()."_".$_FILES["fichier"]["name"];
if (($fichier&& $fichier != "none"))
{
copy($fichier, $destination.$fichier_name);
$nom = $destination.$fichier_name;
$nom_copie = $destination.'copie_'.$fichier_name;
$size = getimagesize($nom);
$largeur = $size[0];
$hauteur = $size[1];
$x = ($pourcent*$largeur)/100;
$y = ($pourcent*$hauteur)/100;
$im_out = imagecreatetruecolor($x, $y);
$im_in = imagecreatefromjpeg($nom);
imagecopyresampled($im_out, $im_in, 0, 0, 0, 0, $x, $y, $largeur, $hauteur);
imagejpeg($im_out, $nom_copie);
imagedestroy($im_in);
imagedestroy($im_out);
unlink("$destination/$fichier_name");
}
|
Merci de bien vouloir me répondre.
Arnaud |
|
| |
|
 |
mikaelka Nouveau WRInaute
Inscrit le: 24 Déc 2007 Messages: 24 Localisation: PACA
|
Posté le : Lun Déc 24, 2007 15:14 Sujet du message: Upload |
|
|
Tu n'a qu'a tester si le champ est vide ou si le fichier n'existe pas. Tu englobe ton traitement sur le fichier dans un
if($_FILES['photo']['size'])
{ tu fais ton traitement }
//else implicite
j'envoie mon form;
Le if permet d'empecher l'envoie de fichier vide et vérifie si un fichier est envoyé.
Voilà en espérant avoir répondu a ta question.
Dernière édition par mikaelka le Lun Déc 24, 2007 17:18; édité 1 fois |
|
| |
|
 |
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Lun Déc 24, 2007 16:16 Sujet du message: Upload |
|
|
Re,
Peut tu m'expliquer un peut plus, je suis amateur et non pro du php et j'ai quelques lacunes.
Arnaud |
|
| |
|
 |
mikaelka Nouveau WRInaute
Inscrit le: 24 Déc 2007 Messages: 24 Localisation: PACA
|
Posté le : Lun Déc 24, 2007 17:17 Sujet du message: Upload |
|
|
J'ai pas trop le temps aujourd'hui mais demain je serai libre.
Sinon pour expliquer brièvement. Tu va tester si l'utilisateur envoie un fichier avec le
if($_FILES['photo']['size'])
-> dans le bloc du if tu fera ton traitement sur le fichier (déplacement, copie ou ce que tu veux...)
-> après le bloc du if tu met tous se qui est commun au deux cas ( cas 1: l'utilisateur envoie un fichier, cas 2 : l'utilisateur n'en envoie pas)
Et c'est tout; si un fichier est up il rentrera dans le if et fera les traitement, sinon il fera juste tout se qu'il y a après (cad l'envoie des autres informations ou autres traitement...). |
|
| |
|
 |
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Mer Déc 26, 2007 10:53 Sujet du message: Upload |
|
|
Re,
Peut tu me donner l'exmple concret, je suis perdu.
Arnaud |
|
| |
|
 |
mikaelka Nouveau WRInaute
Inscrit le: 24 Déc 2007 Messages: 24 Localisation: PACA
|
Posté le : Mer Déc 26, 2007 16:16 Sujet du message: Upload |
|
|
| Code: |
if($_FILES['photo']['size'])
{
$destination="./fichiers/";
$pourcent="50";
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'JPG') && !strstr($type_file, 'JPEG'))
{
exit("<img src=\"images/warning.gif \" ><b>L'extension de votre photo n'est pas un JPG ou JPEG merci de resaisir le formulaire avec la bonne extension <a class=\"liens_bleu\" href=\"ajoute-petite-annonce-avec-photo.php\">RETOUR</a></b>");
}
$fichier_name = time()."_".$_FILES["fichier"]["name"];
if (($fichier&& $fichier != "none"))
{
copy($fichier, $destination.$fichier_name);
$nom = $destination.$fichier_name;
$nom_copie = $destination.'copie_'.$fichier_name;
$size = getimagesize($nom);
$largeur = $size[0];
$hauteur = $size[1];
$x = ($pourcent*$largeur)/100;
$y = ($pourcent*$hauteur)/100;
$im_out = imagecreatetruecolor($x, $y);
$im_in = imagecreatefromjpeg($nom);
imagecopyresampled($im_out, $im_in, 0, 0, 0, 0, $x, $y, $largeur, $hauteur);
imagejpeg($im_out, $nom_copie);
imagedestroy($im_in);
imagedestroy($im_out);
unlink("$destination/$fichier_name");
}
}//endif
else echo('Vous n'avez pas envoyer d'image');
// on fait les autres traitement sur le formulaire si il y en a (exmple : verification de
// la validité des champs...)
|
Voilà je pense que sa passe comme sa il suffit de tester, tout dépend de l'implémentation de votre système de formulaire. |
|
| |
|
 |
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Jeu Déc 27, 2007 16:24 Sujet du message: Upload |
|
|
Re,
Je pense que je me suis mal expliqué, je voudrais que l'image soit optionel soit il y en a une ou pas cela ne change rien le reste du formulaire est ecrit dans ma base avec le champ photo "vide ou plein" mais de la facon que mon script est fait il faut obligatoirement une photo (comment faire pour le rendre optionel).
Arnaud |
|
| |
|
 |
UsagiYojimbo WRInaute accro

Inscrit le: 23 Nov 2005 Messages: 2245 Localisation: Lyon, capitale des Gaules
|
Posté le : Jeu Déc 27, 2007 16:46 Sujet du message: Upload |
|
|
Le script qui t'es présenté ici est une base de départ pour rendre optionnel l'upload d'image sur ton formulaire.
Ce n'est pas ça que tu cherches à faire ? |
|
| |
|
 |
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Jeu Déc 27, 2007 17:00 Sujet du message: Upload |
|
|
oui mais il y a un truc qui ne fonctionne pas il me dit toujours
L'extension de votre photo n'est pas un JPG ou JPEG merci de resaisir le formulaire avec la bonne extension.
Comment puis je faire ?
Arnaud |
|
| |
|
 |
UsagiYojimbo WRInaute accro

Inscrit le: 23 Nov 2005 Messages: 2245 Localisation: Lyon, capitale des Gaules
|
Posté le : Jeu Déc 27, 2007 17:13 Sujet du message: Upload |
|
|
A la place de :
| mikaelka a écrit: |
[code]if($_FILES['photo']['size'])
{
|
J'aurais plutôt fait :
[code]if (isset($_FILES['photo']['tmp_name']) && ($_FILES['photo']['tmp_name'] != ''))[/code] |
|
| |
|
 |
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Jeu Déc 27, 2007 18:46 Sujet du message: Upload |
|
|
Re,
Merci à vous deux mais il me reste encore une chose qui ne cloche pas? l'upload c'est ok par contre quand il ni y a pas d'image il met dans la base le début de "l'image http://www.monsite.com/fichiers/copie_
Comment résoudre ce probleme.
Arnaud |
|
| |
|
 |
UsagiYojimbo WRInaute accro

Inscrit le: 23 Nov 2005 Messages: 2245 Localisation: Lyon, capitale des Gaules
|
Posté le : Jeu Déc 27, 2007 18:57 Sujet du message: Upload |
|
|
| arnaud321 a écrit: |
Re,
Merci à vous deux mais il me reste encore une chose qui ne cloche pas? l'upload c'est ok par contre quand il ni y a pas d'image il met dans la base le début de "l'image http://www.monsite.com/fichiers/copie_
Comment résoudre ce probleme.
Arnaud |
A quoi ressemble ton ordre SQL pour l'INSERT ? A mon avis y'a une partie qui doit être codée en dur avec le début de l'url du fichier. |
|
| |
|
 |
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Jeu Déc 27, 2007 19:02 Sujet du message: Upload |
|
|
Re
Pour ne pas trop changer la structure je voudrais mettre 1no.gif dans ma base et quand il y a une photo copie_12344.jpg pour éviter les doublons de photos.
Merci |
|
| |
|
 |
arnaud321 Nouveau WRInaute
Inscrit le: 15 Avr 2005 Messages: 47 Localisation: rouen
|
Posté le : Jeu Déc 27, 2007 19:04 Sujet du message: Upload |
|
|
Suite pardon !!!
// ---------- Enregistrement des données dans la base
mysql_query("INSERT INTO annonces VALUES('', '" . $pseudo . "', '" . $pass . "', '" . $mail . "','" . $categorie . "', '" . $titre . "', '" . $description . "', '" . $prix . "', '" . $date . "', '" . copie_.$fichier_name . "', '" . $cp . "', '" . $ville . "', '". 1 ."')");
Arnaud |
|
| |
|
 |
mikaelka Nouveau WRInaute
Inscrit le: 24 Déc 2007 Messages: 24 Localisation: PACA
|
Posté le : Dim Déc 30, 2007 23:10 Sujet du message: Upload |
|
|
Je n'est pas très bien saisi ton problème mais bon moi j'écrirai sa :
| Code: |
| mysql_query("INSERT INTO annonces VALUES('', '$pseudo ', '$pass', '$mail ','$categorie', '$titre', '$description', '$prix', '$date', 'copie_.$fichier_name', '$cp', '$ville', '1')"); |
Chez moi sa passe...
à la place de sa
| Code: |
| mysql_query("INSERT INTO annonces VALUES('', '" . $pseudo . "', '" . $pass . "', '" . $mail . "','" . $categorie . "', '" . $titre . "', '" . $description . "', '" . $prix . "', '" . $date . "', '" . copie_.$fichier_name . "', '" . $cp . "', '" . $ville . "', '". 1 ."')"); |
Sinon si tu veux ré-expliquer ton problème  |
|
| |
|
 |
| |
|
|