C'est pas la sous-clé name qu'il faut utiliser (qui contient le nom original du fichier), mais [i]tmp_name, avec dedans le nom temporaire du fichier tel qu'il squatte sur le serveur.
Vérifie aussi que l'upload s'est bien passé avec les différentes erreurs possible :
Code :
- if(!isset($_FILES['bob']) {
- // Fichier pas présent dans la requête (genre formulaire truandé)
- } else {
- switch($_FILES['bob']['error']) {
- case UPLOAD_ERR_OK:
- move_uploaded_file($_FILES['bob']['tmp_name'], 'toto/upload/' . basename($_FILES['bob']['name']));
- break;
- case UPLOAD_ERR_INI_SIZE:
- case UPLOAD_ERR_FORM_SIZE:
- // Fichier trop gros (via directive php.ini upload_max_filesize ou input hidden MAX_FILE_SIZE);
- break;
- case UPLOAD_ERR_NO_FILE:
- // Fichier pas uploadé (input file laissé vide)
- break;
- default:
- // Autre erreur
- }
|
Voir la Référence sur les erreurs possible.
Et aussi n'oublie jamais les attributs enctype="multipart/form-data" et method="POST" sur le <form>, ce sont des oublis courants