Page 1 sur 1
Le nom des images temporaires
Posté : 21 juin 2006, 16:46
par Invité
Quand j'upload une image et que j'essaye d'afficher le nom ou le nom temporaire il me retourne toujours des nom qui n'ont rien a voir avec ce que je cherche du type : /tmp/phpGVVb77 et je ne comprends pas pourquoi.
J'utilise :
echo $_FILES['photo']['tmp_name'];
ou
echo $_FILES['photo']['name'];
mais toujours la même chose les 2 me retourne des noms etrange.
Je pensais que tmp_name etait le nom sur le disque local du client ...
Posté : 21 juin 2006, 16:46
par agité
excusez moi je ne m'etais pas log

Posté : 21 juin 2006, 16:58
par Orni
Pour "tmp_name" c'est totalement normal qu'il te retourne un nom pareil, mais pour "name" il doit te retourner le nom du fichier que tu lui as envoyé.
Posté : 21 juin 2006, 17:03
par mere-teresa
$_FILES['userfile']['name']
Le nom original du fichier, tel que sur la machine du client web.
$_FILES['userfile']['tmp_name']
Le nom temporaire du fichier qui sera chargé sur la machine serveur.
$_FILES['userfile']['error']
Ce tpm_name est en fait le nom bizarre quand tu charges réellement le fichier sur le serveur, il le met dans un répertoire temporaire (paramétrable dans php.ini).
Ensuite, avec move_uploaded_file() tu le déplaces là où tu veux.
Posté : 21 juin 2006, 17:32
par agité
justement en fait j'upload le fichier mais je veux faire des verif avant de le telecharger sur mon FTP.
Ce que je veux c'est tester le fichier avec le nom tmp_name pour par exemple tester l'extension !
Une idée ?
Posté : 21 juin 2006, 17:38
par Ryle
Tu ne peux absolument rien faire en php sur le fichier tant que celui-ci n'a pas été uploadé sur le serveur... les seuls controles que tu peux effectuer sont ceux faisables en javascript ou html sur le formulaire (ce qui doit se limiter à quelque chose comme récupérer l'extension, limiter les types mimes autorisées avec certains navigateurs, etc.)
Une fois le fichier uploadé sur le serveur par contre tu peux utiliser php pour connaitre la taille, le type mime etc. et savoir si tu le déplaces ou non hors du dossier temporaire
Posté : 21 juin 2006, 17:46
par agité
mouais donc si un fichier ne respecte pas la taille que je veux il l'upload quand même c'est pas terrible quand même ou pire si on m'upload un hack.php je l'upload avant de le verrifier ?
je trouve pas ca logique.
Posté : 21 juin 2006, 17:55
par mere-teresa
Le TEMPDIR est régulièrement nettoyé
puisque par défaut il s'agit du répertoire /tmp et c'est là que le serveur load ton fichier...
Posté : 21 juin 2006, 17:57
par Devether
de toute foçon quand tu proposes de telecharger un image tu dois bien donner un champ de saisie pour rentrer le chemin du fichier. Donc ton controle tu le fais sur la variable qui contient le nom du fichier.
Posté : 21 juin 2006, 18:09
par Ryle
Pour le coup du "hack.php", dans son nom temporaire, le fichier n'a pas d'extension (php ou autre) il est donc impossible que ton serveur l'exécute si jamais quelqu'un avait accès au dossier temporaire et parvenait par hazard à retrouver le nom qui lui a été assigné.
En revanche à toi d'assurer un minimum de sécurité en filtrant les fichiers à risque lors du move_upload_file()... personnellement je rajoute un .txt à tout fichier avec l'extension .php* que j'upload avant de le déplacer

Posté : 21 juin 2006, 18:25
par agité
Ok c'est ce que je risque de faire mais moi je refuse directement tout .php ou autre script c'est juste de l'upload d'image en tout cas en utilisant le "name" tout passe sans problème.
Je met donc [Resolu] et merci pour ces reponses fortes instrutives
EDIT : ah non je peux pas mettre resolu n'etant pas l'auteur du sujet !