Contrôler le type de champ d'un formulaire

Invité
Invité n'ayant pas de compte PHPfrance

02 août 2005, 21:52

Bonjour,

Je dois retravailler un script d'upload de fichier. J'ai vu le tuto de ce site et j'ai déjà fait d'autres scripts d'upload mais là c'est plus ardu...

J'aimerais savoir comment à partir du 'name' d'un champ de formulaire on peut récupérer son type.

Sinon comment peut-on lister tous les fichiers transmis par un champ de type file avec la variable $_FILE ?

Merci.

Mammouth du PHP | 19672 Messages

02 août 2005, 22:14

Un petit tour dans la doc t'aurait appris plein de choses utiles sur le sujet : $_FILES['nom_champ_formulaire']['type'] par exemple.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

02 août 2005, 22:35

Oui Cyrano.

Par contre, quand je mets ce bout de code là, rien ne s'affiche :

Code : Tout sélectionner

print '<pre>'; print_r($_FILES); print '</pre>';
Ca me faire dire qu'il y a un problème de transmission du champ file du formulaire.

Mammouth du PHP | 19672 Messages

02 août 2005, 22:39

Ce qui voudrait dire que ta variable $_FILES est vide ... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

02 août 2005, 22:41

Pardon finalement cela marche, j'ai cela :

Code : Tout sélectionner

Array ( [champ4] => Array ( [name] => mushi.jpg [type] => image/jpeg [tmp_name] => /tmp/phpdFUrCQ [error] => 0 [size] => 63793 ) )
Reste plus qu'à faire la copie vers le répertoire de mon choix...

Mammouth du PHP | 19672 Messages

02 août 2005, 22:45

Ça en a tout l'air ;)

[Résolu] :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

02 août 2005, 23:28

Code : Tout sélectionner

$dest_dossier = '../../img/news/'; // utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/'; // vérifie l'existence du répertoire de destination if (!is_dir($dest_dossier)) { echo 'Veuillez indiquer un r&eacute;pertoire destination correct !'; die(); } // vérifie que répertoire de destination a des droits en écriture if (!is_writeable($dest_dossier)) { echo 'Veuillez spécifier des droits en écriture pour le r&eacute;pertoire destination !'; die(); } $dest_fichier = basename($_FILES['champ4']['name']); if (move_uploaded_file($_FILES['champ4']['tmp_name'], $dest_dossier.$dest_fichier)) { echo 'Fichier uploadé comme y faut !'; } else { echo 'Fichier uploadé PAS comme y faut !'; }
Euh... presque, je comprends pas pourquoi il me dit 'Veuillez indiquer un répertoire destination correct !'. Si je mets $dest_dossier = './'; là ça marche.

Mammouth du PHP | 19672 Messages

02 août 2005, 23:32

Il faut que ton chemin relatif soit calculé par rapport à la page affichée et non par rapport au fichier contenant ta fonction qui est inclus depuis un sous-répertoire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

03 août 2005, 00:15

le fichier php est dans le chemin /php/forms et je veux mettre l'image dans le chemin /img/news ...

Eléphanteau du PHP | 17 Messages

03 août 2005, 00:29

ok c'est bon ça marche.

merci Cyrano pour ton aide :love1:

RESOLU :pouce: