Aller au contenu

Créer un formulaire pour upload de fichiers


Sujets conseillés

Posté

Bonjour,

Je désirerais créer un formulaire avec un champ de type "file" pour uploader un fichier sur le serveur.

Mais je ne m'en sort pas trop, j'ai trouvé quelques tutos sur le net, et je suis les instructions mais ça ne fonctionne pas :unsure: ...

En plus, quand je vais dans phpinfo, je vois que mon "upload_tmp_dir" est en "no value" (je suis hébergé chez Free).

J'aurais donc besoin d'assistance pour le faire pas à pas svp, si c'est possible...

Je suis assez débutant en php, j'ai fait quelques trucs avec du mysql, et là j'ai besoin de quelque chose qui requiert beaucoup plus de connaissances...

Merci :rolleyes: !

Posté

Bonjour,

Il ne faut pas oublier de mettre

enctype="multipart/form-data"

dans la balise FORM.

D'autre part, fais attention à la taille du fichier. Il y a souvent des limites. Dans un premier temps, je te conseille d'essayer avec un petit fichier.

Coté serveur, il y a peut-être des restrictions... mais c'est plutôt à Dan de t'orienter ;)

Posté

La limitation par défaut est de 2MB... mais je ne sais pas pour Free qui a tendance à "durcir les règles".

Sinon, une fois qu'un fichier a été transmis, il faut utiliser move_uploaded_file() pour le sortir du répertoire temporaire dans lequel il est placé par défaut.

Voir la page du manuel de php concernant la gestion des chargements de fichiers : http://www.manuelphp.com/php/features.file...post-method.php

Posté

Salut, merci à tous pour vos infos, par contre je voudrais insérer le champ "file" dans un formulaire qui contient déjà quelques champs, et dont il n'y a pas en "enctype". Sa marche si je le rajoute à coté de "Action" ?

Posté

Salut à tous,

J'ai créer ce formulaire depuis quelques jours en cherchant sur plusieurs sites.

Je l'ai fini mais il m'indique une erreur d'extension, voici mon code :

<?

if( isset($_POST['upload']) ) // si formulaire soumis
{
   $content_dir = '/var/www/free.fr/9/9/va.skyjet/skyhtmltest/'; // dossier où sera déplacé le fichier

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

   if( !is_uploaded_file($tmp_file) )
   {
       exit("Le fichier est introuvable");
   }

   // on vérifie maintenant l'extension
   $type_file = $_FILES['fichier']['type'];

   if( !strstr($type_file, 'flt') && !strstr($type_file, 'FLT') )
   {
       exit("Le fichier n'est pas le bon, son extension doit être .flt !");
   }

   // on copie le fichier dans le dossier de destination
   $name_file = $_FILES['fichier']['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é";
}

?>

Je suis sur de vouloir uploader un fichier d'extension "flt", et il m'envoi le message d'erreur quand même !

Quelqu'un pourrait m'aider SVP ??

Merci !

Posté

C'est le type de fichier :) En aucun cas l'extension.

Pour vérifier que le nom du fichier comporte l'extension que tu veux tu peux faire :

if (eregi(".flt", $FILES['fichier']['name'])) {

Posté

D'accord, merci ça fonctionne !

Au fait, j'aurais aussi voulu que le nom porte celui d'une variable $file avec une extension .flt,

Comment faire ??

Merci ;) !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...