bonjour à tous,
j'utilise un formulaire pour envoyer des fichiers sur un serveur et de donnees dans une base de donnees sql.
le porbleme arrive quand l'utilisateur envoie un fichier comportant un accent.
Dans la base le nom du fichier est ok mais dans mon repertoire uploads c'est pas pareil
ex:
dans ma base le fichier se nomme :
143-12é3913689.jpg
dans mon repertoire /uploads:
143-12é3913689.jpg
ce qui pose un probleme quand je veux afficher l'image.
alors j'ai fait ça
ça marche mais ça ne m'enregistre pas dans mon repertoire /uploads. ça renomme le fichier en
uploads_143_12yy3913689.jpg
qui sait comment faire ?
Merci d'avance
Modifié par pareto (12 Apr 2010 - 11:29)
j'utilise un formulaire pour envoyer des fichiers sur un serveur et de donnees dans une base de donnees sql.
le porbleme arrive quand l'utilisateur envoie un fichier comportant un accent.
Dans la base le nom du fichier est ok mais dans mon repertoire uploads c'est pas pareil
ex:
dans ma base le fichier se nomme :
143-12é3913689.jpg
dans mon repertoire /uploads:
143-12é3913689.jpg
ce qui pose un probleme quand je veux afficher l'image.
alors j'ai fait ça
if (!empty($_FILES))
{
foreach($_FILES as $index => $array_image)
{
if(!empty($_FILES[$index]['name']))
{
$chemin_image = $repertoire_images .'/'. $id_user . '-' . basename($_FILES[$index]['name']);
$chemin_image = strtr($chemin_image,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$chemin_image= preg_replace('/([^.a-z0-9]+)/i', '_', $chemin_image);
if (move_uploaded_file($_FILES[$index]['tmp_name'], $chemin_image))
{
$sql= sprintf("Insert Into users_images (id_image, id_user, chemin_image) Values(null, $id_user, '%s')",
mysql_real_escape_string($chemin_image));
mysql_query($sql);
}
ça marche mais ça ne m'enregistre pas dans mon repertoire /uploads. ça renomme le fichier en
uploads_143_12yy3913689.jpg
qui sait comment faire ?
Merci d'avance
Modifié par pareto (12 Apr 2010 - 11:29)