Probleme avec move_uploaded_file et UTF8

cs_DJTIME Messages postés 39 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 4 janvier 2008 - 4 janv. 2008 à 08:39
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 4 janv. 2008 à 20:15
Voici un bout de code pris du net que j'ai utilisé pour l'upload de fichier sur mon site (qui n'est pas encore en ligne vu qu'il marche po!)
Bref!! ca fonctionne parfaitement sauf quand j'envoit un fichier en UTF8 arabe japonais martien tout ce que tu veux!!
et dans mon "$dossier" je trouve effectivement le fichier mais avec un nom bizarre! (alors que je precise dans ma base en mysql le nom de l'url est parfaitement inscrite"

$dossier = './upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 200000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.doc', '.xls', '.pdf', '.ppt','.rtf','.docx','.xlsx','.pptx','.txt');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
unset($erreur);
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader [envoyer] un fichier de type doc, docx, ppt, pptx, xls, xlsx, pdf, rtf ou txt ...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop volumineux [Taille maximum dépassée]...';
}

if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
         
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}

Si quelqu'un a une astuce je suis preneur!!! tous ce que vous voulais
je precise que j'ai activer en defaut charset UTF8 dans le PHP.ini et que ma version de php est la 4.3.10
Merci d'avance :)

________________________________________
Public Compris As Boolean
Private Sub Form_Load()
Do Until compris = True
ShellExecute hwnd, "Open", "http://www.vbfrance.com", "", App.Path, 1
Loop
MsgBox "Ouf! je vais po mourrir con ! ;)"
A voir également:

1 réponse

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 janv. 2008 à 20:15
hello,

c'est le nom du fichier sur le disque de ton serveur, c'est ça ? Ca parait normal : ton os, lui, ne comprend sans doute pas l'arabe, le japonais ou le martien. Quand à son encodage par défaut...
Je serais toi, je renommerais automatiquement les fichiers.
Rejoignez-nous