8800 sujets

Développement web côté serveur, CMS

Bonjour,

Je fais un site avec un upload de fichier (utilisation de move_uploaded_file). Dès que j'essai avec un doc de type word qui contient une image. Le fichier a cette tête là : ÐÏ à¡± á > þÿ " $ þÿÿÿ ! ÿÿ alors que sans l'image ça marche bien.

Une idée?


$dossier = strtolower (getCheminUpload().$_SESSION['user']->Compte->nom."/");
$nomFichier = basename($_FILES['fichier']['name']);
$taille_maxi = $_POST['MAX_FILE_SIZE'];
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.php','.php3');
$extension = strrchr($_FILES['fichier']['name'], '.'); 
//Début des vérifications de sécurité...
if(in_array($extension, $extensions)) //Si l'extension est dans le tableau
{
     $erreur = $ERR_EXT;
}
if($taille>$taille_maxi)
{
     $erreur = $ERR_TAILLE;
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $nomFichier = strtr($nomFichier, 
          'éééééééééééééééééééééééééééééééééééééééééééééééééééé', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $nomFichier = preg_replace('/([^.a-z0-9]+)/i', '-', $nomFichier);
     $nomficTmp =  strtolower($nomficTmp); 
	 
    //Vérifie que le dossier existe   
    IsDir_or_CreateIt($dossier);
   
     if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier.$nomficTmp)) 
     
Bonjour Drayane,


Attention :


$nomFichier = strtr(
          $nomFichier, 
          'éééééééééééééééééééééééééééééééééééééééééééééééééééé', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'
);


Je pense que tu t 'es trompé dans cette fonction, tu ne traites que le caractère "é" et pas les autres.

Ceci fonctionne mieux :

$nomFichier = strtr(
          $nomFichier,
          'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ',
          'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'
); 


Sinon quel encodage utilises-tu ?
Modifié par elkastor (10 Mar 2011 - 08:39)