Transfert d'une image via un form html
Mickael86480
Messages postés
660
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je viens vers vous car comme l'indique le titre du post je souhaite transférer une image via un form. Je m'explique, je suis en train de monter un site de recette où l'utilisateur peut créer sa recette, je lui donne la possibilité d'importer une image afin d'illustrer sa recette, j'ai bien suivi le tuto ccm ( https://www.commentcamarche.net/faq/889-php-upload-de-fichiers ) et j'en suis arriver à ceci :
Les problèmes que je rencontre :
1) Aucun dossier de réception n'est créé.
2) Aucun fichier n'est déplacé.
Merci à tous ceux qui prendrons le temps de me répondre.
<html> <head> <meta charset="utf-8"> </head> <body> <!--Le formulaire html--> <form method="post" action="#" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="5242880"> <!--on informe la taille max à envoyer, ici un peu + 5Mo--> <input type="file" name="nom_du_fichier"> <input type="submit" value="Envoyer" name="envoyer"> </form> <!---->
<?php if(isset($_POST['envoyer'])){ if ($_FILES['nom_du_fichier']['error']) { switch ($_FILES['nom_du_fichier']['error']){ case 1: // UPLOAD_ERR_INI_SIZE echo"Le fichier dépasse la limite autorisée par le serveur."; break; case 2: // UPLOAD_ERR_FORM_SIZE echo "Le fichier dépasse la limite autorisée dans le formulaire HTML."; break; case 3: // UPLOAD_ERR_PARTIAL echo "L'envoi du fichier a été interrompu pendant le transfert."; break; case 4: // UPLOAD_ERR_NO_FILE echo "Le fichier que vous avez envoyé a une taille nulle."; break; } } else { // $_FILES['nom_du_fichier']['error'] vaut 0 soit UPLOAD_ERR_OK // ce qui signifie qu'il n'y a eu aucune erreur if ((isset($_FILES['nom_du_fichier']['temp_name'])&&($_FILES['nom_du_fichier']['error'] == UPLOAD_ERR_OK))) { mkdir('recette/dossiers_utilisateurs/images_recettes/', 0777, true); $chemin_destination = 'wamp/www/recette/dossiers_utilisateurs/images_recettes/'; move_uploaded_file($_FILES['nom_du_fichier']['tmp_name'], $chemin_destination.$_FILES['nom_du_fichier']['name']); } } } ?>
</body> </html>
Les problèmes que je rencontre :
1) Aucun dossier de réception n'est créé.
2) Aucun fichier n'est déplacé.
Merci à tous ceux qui prendrons le temps de me répondre.
A voir également:
- Transfert d'une image via un form html
- Editeur html - Télécharger - HTML
- Image iso - Guide
- Légender une image - Guide
- Whatsapp transfert discussion - Accueil - WhatsApp
- Transfert d'appel ooredoo - Forum Mobile
2 réponses
Salut,
Tu as une coquille à la ligne 23 :
au lieu de :
Bonne journée,
Tu as une coquille à la ligne 23 :
if ((isset($_FILES['nom_du_fichier']['temp_name']) ...
au lieu de :
if ((isset($_FILES['nom_du_fichier']['tmp_name']) ...
Bonne journée,
Maintenant le soucis que je rencontre c'est que je n'ai plus d'extension ou plutôt je voudrais y modifier l'extension et y mettre .jpg afin que je ne sois pas surpris du format que je reçois, j'ai bien essayé ça mais ça ne fonctionne pas. J'ai besoin d'un regard extérieur :
//Créer un identifiant difficile à deviner
$nom=uniqid(rand()+'.jpg');
$nom = md5($nom, true);
$chemin_destination = 'C:/wamp/www/recette/dossiers_utilisateurs/images_recettes/'.$pseudo.'/';
$_FILES['nom_du_fichier']['name']=$nom;
move_uploaded_file($_FILES['nom_du_fichier']['tmp_name'], $chemin_destination.$_FILES['nom_du_fichier']['name']);
D'accord si je comprends bien ton code :
$ext prend pour valeur, l'extension du fichier uploadé.
$nom prend pour valeur un nom inventé avec l'extension du fichier uploadé
est-ce bien ça?
$ext = pathinfo($_FILES['nom_du_fichier']['tmp_name'], PATHINFO_EXTENSION);
$ext prend pour valeur, l'extension du fichier uploadé.
$nom = md5(uniqid(rand()), true) . '.' . $ext;
$nom prend pour valeur un nom inventé avec l'extension du fichier uploadé
est-ce bien ça?
les dossiers sont créés mais je n'ai pas la photo dedans. En revanche, j'ai deux avertissements :
Warning: move_uploaded_file(wamp/www/recette/dossiers_utilisateurs/images_recettes/P1010001.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\recette\essai.php on line 37
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php3338.tmp' to 'wamp/www/recette/dossiers_utilisateurs/images_recettes/P1010001.JPG' in C:\wamp\www\recette\essai.php on line 37
je ne comprends pas merci de m'aider.
Dernière remarque, j'ai un autre avertissement qui me le dossier que je veux créer existe déjà, il faut que je test, penses-tu que cela peut suffir :