Page 1 sur 1

Souci d'upload

Posté : 15 mars 2010, 15:56
par SinBert
Bonjour,

en ce bel après midi, je m'ennuyais, donc j'ai décidé de coder un peu. (chacun ses passes-temps 8-))
Bref, j'ai fait un script qui a pour but d'uploader une image(pas très grosse) sur mon espace web. Easy-win allez vous me dire? Et bien j'ai rencontré des problèmes quand même. :(
Voici le formulaire html (version light, pour vous simplifier la lecture) :
<form action="upload_img.php" method="post">

     <input type="file" name="img">
     <input type="text" name="titre">
     <textarea name="description"></textarea>

     <input type="submit" name="submit" value="Envoyer">
</form>
Et voici se que vous attendez tous ! Le script d'upload :
<?php

if(isset($_POST['titre']) && isset($_POST['description']) && isset($_FILES['img']))
{
    $content_dir = '../upload/images/'; 

    $tmp_file = $_FILES['img']['tmp_name'];

    if(!is_uploaded_file($tmp_file))
    {
        exit("1");
    }

    $extensions = array('.png', '.gif', '.jpg', '.jpeg'); 	
    $extension = strrchr($_FILES['img']['name'], '.');
	
    if(!in_array($extension, $extensions)) 
    {
       exit("2");
    }

    $name_file = $_FILES['img']['name'];

    if(!move_uploaded_file($tmp_file, $content_dir . $name_file))
    {
        exit('Impossible de copier le fichier dans ' . $content_dir);
    }

    echo "Le fichier a bien été uploadé";
}
else
{
    echo 'Aucun fichier';
}

?>
Script assez simple et pourtant, voici la réponse :
Aucun fichier
J'ai rempli tous les champs et mis une image PNG.
Que s'est-il passé? tel est la question...

Merci d'avance :D

Re: Souci d'upload

Posté : 15 mars 2010, 16:03
par stealth35
enctype="multipart/form-data"

Re: Souci d'upload

Posté : 15 mars 2010, 16:16
par stopher
Pour compléter la réponse de stealth35 qui selon moi est un peu lége , dans la balise <form > , il faut préciser l'enctype, c'est à dire le type du contenu envoyé au serveur lorsque l'attribut "method" vaut "post".

qui est donc "multipart/form-data"

ce qui donnera au finale :
<form action="upload_img.php" method="post" enctype="multipart/form-data" >
Pas mal de tuto la dessus ,

http://antoine-herault.developpez.com/t ... hp/upload/

Bonne continuation ,

Ch .

Re: Souci d'upload

Posté : 15 mars 2010, 16:20
par stealth35
il faut préciser l'enctype, c'est à dire le type d'encodage du fichier.
c'est pas du fichier, mais du formulaire

Re: Souci d'upload

Posté : 15 mars 2010, 16:23
par stopher
Corrigé :wink:

Re: Souci d'upload

Posté : 15 mars 2010, 17:16
par SinBert
Ok, merci à vous deux.
J'ignorais que l'enctype était obligatoire. A vrai dire, j'ignorais à quoi il servait.

Bref, sujet résolu. :D

Re: Souci d'upload

Posté : 15 mars 2010, 20:38
par Calimero
Ok, merci à vous deux.
J'ignorais que l'enctype était obligatoire. A vrai dire, j'ignorais à quoi il servait.

Bref, sujet résolu. :D
Obligatoire si tu as un input type file, bref si tu veux envoyer un fichier via le formulaire ;)

@+