Bonjour,
Je suis en train de développer un site en UTF-8 (pour être compatible ajax).
j'ai fait un petit script php pour uploader des fichiers à partir d'un formulaire html. Dans mon fichier php, je fais ceci :
mon code html ressemble à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $tmpfilename = $_FILES['fichier']['tmp_name']; $filename = $_FILES['fichier']['name']; if ( !is_uploaded_file($tmpfilename) ) die("Erreur lors de l'upload: fichier introuvable (".$tmpfilename.")");
Lorsque j'upload un fichier sans caractères spéciaux, ça fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> ... <form enctype="multipart/form-data" action="upload.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input type="file" name="fichier" size="30"> </form>
Lorsque j'upload un fichier avec caractères spéciaux, ça le fonctionne pas. J'obtiens alors par exemple :
$tmpfilename == "" (chaine vide)
$filename == "élément.jpg"
is_uploaded_file() retourne "false"
Je ne sais vraiment pas comment m'en sortir. Je me doute qu'il s'agit d'un problème d'encodage, mais je ne sais pas quoi changer et où... j'ai essayé d'ajouter accept_charset="utf-8" et accept_charset="iso-8815-1". Mais ça ne fonctionne pas mieux.
Merci pour vos idées, suggestions, solution...
Glipper
Partager