Uploader une image dans un formulaire (bouton "parcourir")

Fermé
¿comment ça marche? Messages postés 168 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 3 décembre 2021 - 21 août 2013 à 11:53
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 - 26 août 2013 à 00:31
Bonjour, j'ai fait un livre d'or avec un formulaire tout simple, en html. Le formulaire est envoyé à une page "send.php", qui envoie un mail avec le contenu de formulaire. voici le code du fichier :

<?php

$TO = "********@gmail.com";

$h  = "From: " . $TO;

$message = "";

while (list($key, $val) = each($_POST)) {
  $message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://www.**********.com/Livredor/merci.html");

?>


jusque là, tout va bien. Mais j'aimerais aussi que les gens puissent joindre une photo au message (avec un bouton "parcourir") : dans ce cas, je ne sais pas du tout comment faire... que faut-il ajouter ?

D'avance, merci.
A voir également:

3 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
21 août 2013 à 11:55
Salut,

tu trouveras tes réponses ici : https://openclassrooms.com/fr/courses
0
¿comment ça marche? Messages postés 168 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 3 décembre 2021 14
21 août 2013 à 13:04
Merci pour ta réponse rapide. Mais quand je clique sur le bouton "envoyer", le script est censé m'envoyer un mail avec les infos du formulaire, et, d'après ce que j'ai compris, mettre les images dans un répertoire sur le serveur : malheureusement, je ne reçois aucun message ni ne vois les images envoyées. voici ce que j'ai fait :

<?php

$TO = "**********@gmail.com";

$h  = "From: " . $TO;

$message = "";

while (list($key, $val) = each($_POST)) {
  $message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://www.***********.com/Livredor/merci.html");

?>

<?php
if ($_FILES['image']['error'] > 0) $erreur = "Erreur lors du transfert";
?>
<?php
if ($_FILES['image']['size'] > $maxsize) $erreur = "Le fichier ne doit pas dépasser 5Mo.";
?>

<?php
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
//1. strrchr renvoie l'extension avec le point (« . »).
//2. substr(chaine,1) ignore le premier caractère de chaine.
//3. strtolower met l'extension en minuscules.
$extension_upload = strtolower(  substr(  strrchr($_FILES['image']['name'], '.')  ,1)  );
if ( in_array($extension_upload,$extensions_valides) ) echo "Extension correcte";
?>

<?php
//Créer un dossier 'fichiers/1/'
  mkdir('imageslivredor/1/', 0777, true);
?>

<?php
$nom = "avatars/{$Nom}.{$extension_upload}";
$resultat = move_uploaded_file($_FILES['image']['tmp_name'],$nom);
if ($resultat) echo "Transfert réussi";
?>


y a t-il une erreur quelque part ? (je précise que je n'y connais pas grand chose au PHP...)
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
26 août 2013 à 00:31
Tu n' as pas tout mis la, deja en debut de ton formulaire tu dois avoir ceci:

<form method="POST" action="xxxx.php" enctype="multipart/form-data">



Si tu n'as pas enctype="multipart/form-data" tu n'enverras aucun fichier.

Ensuite a tu créés le dossier de récéption du fichier?


met un or die (mysql_error()) à la fin de ta requezte pour savoir d'ou vient le probleme sinon tu ne le sauras jamais.

0