Page 1 sur 1
Contrôler le type de champ d'un formulaire
Posté : 02 août 2005, 21:52
par Invité
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.
Posté : 02 août 2005, 22:14
par Cyrano
Un petit tour dans
la doc t'aurait appris plein de choses utiles sur le sujet : $_FILES['nom_champ_formulaire']['type'] par exemple.
Posté : 02 août 2005, 22:35
par Daimonji
Oui Cyrano.
Par contre, quand je mets ce bout de code là, rien ne s'affiche :
Ca me faire dire qu'il y a un problème de transmission du champ file du formulaire.
Posté : 02 août 2005, 22:39
par Cyrano
Ce qui voudrait dire que ta variable $_FILES est vide ...

Posté : 02 août 2005, 22:41
par Daimonji
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...
Posté : 02 août 2005, 22:45
par Cyrano
Ça en a tout l'air
[Résolu]

Posté : 02 août 2005, 23:28
par Daimonji
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é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é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.
Posté : 02 août 2005, 23:32
par Cyrano
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.
Posté : 03 août 2005, 00:15
par Daimonji
le fichier php est dans le chemin /php/forms et je veux mettre l'image dans le chemin /img/news ...
Posté : 03 août 2005, 00:29
par Daimonji
ok c'est bon ça marche.
merci Cyrano pour ton aide
RESOLU
