LiL'SkiSo Posté 7 Mars 2006 Posté 7 Mars 2006 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 ... 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 !
xou Posté 8 Mars 2006 Posté 8 Mars 2006 Et en regardant dans le manuel au lieu de tutos ? http://fr3.php.net/manual/fr/features.file-upload.php
NorSeb Posté 8 Mars 2006 Posté 8 Mars 2006 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
Dan Posté 8 Mars 2006 Posté 8 Mars 2006 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
al nassara Posté 8 Mars 2006 Posté 8 Mars 2006 Je confirme, FREE c'est 2Mo maximum..et pas moyen de le changer (pas trouvé en tout cas..)
LiL'SkiSo Posté 10 Mars 2006 Auteur Posté 10 Mars 2006 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" ?
LiL'SkiSo Posté 16 Mars 2006 Auteur Posté 16 Mars 2006 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 !
NorSeb Posté 16 Mars 2006 Posté 16 Mars 2006 Bonjour, Ajoute un echo $_FILES['fichier']['type']; Tu verras bien ce qu'il en est...
LiL'SkiSo Posté 16 Mars 2006 Auteur Posté 16 Mars 2006 Ca m'affiche : application/octet-stream C'est quoi :| ?
NorSeb Posté 16 Mars 2006 Posté 16 Mars 2006 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'])) {
LiL'SkiSo Posté 16 Mars 2006 Auteur Posté 16 Mars 2006 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 !
LiL'SkiSo Posté 16 Mars 2006 Auteur Posté 16 Mars 2006 Ou plutôt de vérifier que le nom du fichier est bien le même que celui du $file ?
NorSeb Posté 17 Mars 2006 Posté 17 Mars 2006 Il suffit de faire une comparaison non ? if ($_FILES['fichier']['name'] == $file)
LiL'SkiSo Posté 17 Mars 2006 Auteur Posté 17 Mars 2006 Oui en fait c'est bon, il fallait juste rajouter le if ($_FILES['fichier']['name'] == "$file.FLT") Et ça marche !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant