|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Inscription : avril 2005 Messages : 112 ![]() |
Bonjour à tous,
Je bloque sur un problème assez énervant (pour rester poli) qui n'apparaît que sous Firefox. En fait, je suis en train de créer un formulaire d'upload de photo et je ne souhaite pas stocker des photos avec accent, pour cela je me suis fait une petite fonction qui transforme mon nom de fichier "francais" en nom de fichier tout ce qu'il y a de plus "ascii" Code :
Voici le code de mon formulaire HTML (la page est encodée en utf-8): Code :
Code :
Maintenant, testez cela dans firefox 4 avec un fichier qui comporte des accents dans le nom et vous verrez qu'il ne fait rien!! En tout cas, ça me fait ça sous Mac OS. J'ai testé avec Chrome, ça marche, j'ai testé sous IE 8 ça marche aussi... Ce qui m'intrigue le plus c'est que lorsque je fais un mb_detect_encoding sur mon nom de fichier, il détecte bien qu'il est en UTF-8. Quelqu'un a déjà eu ce problème ? Est-ce que ça vient de ma version de PHP qui est trop vieille (5.2.4) ? Est-ce que ça vient la fonction que j'utilise ? Ou autre ? Je précise aussi que quand j'enregistre le fichier sur le disque dur, le nom n'est pas bon, par exemple si j'ai un fichier qui s'appel "Rémi.png" (et qu'il s'affiche comme tel quand je fais un print) il s'enregistrera sous "ReÌmi.png", ce qui fait tout de même penser à un problème d'encodage... Merci à vous, Andréas P.S : J'ai le même problème quand le fichier est contenu dans une archive et là ce me le fait même avec Chrome, étrange... |
||||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Webmaster Inscription : février 2007 Messages : 261 ![]() |
Que vaut $str avant de passer dans clean_french_string() ?
|
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 242 ![]() |
Oui apparemment c'est un problème d'encodage dans ta page. Il doit manquer une étape dans ton script pour un encodage cohérent du début à la fin de ton code. Un tuto ici
Sinon je viens de poster une classe d'upload facilement paramétrable et prête à l'emploi. Le dernier exemple est en utf-8. Tu peux regarder ou utiliser la classe car elle fait les mêmes remplacements que les tiens (même un peu plus).
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
00
|
|
|
#4 | |||
|
Membre du Club
![]() Inscription : avril 2005 Messages : 112 ![]() |
Bonjour,
Merci pour vos réponses Citation:
Citation:
Citation:
Je vais quand même tester voir si j'ai le même problème, je te dirai. Encore merci à vous, je pense que je vais laissé décanter et bosser sur d'autre chose avant de revenir à ce problème car ça m'a vraiment "frustré"! Le pire c'est que ça me fait ça que sous firefox! |
|||
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 242 ![]() |
Citation:
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
|
00
|
|
|
#6 | |
|
Membre du Club
![]() Inscription : avril 2005 Messages : 112 ![]() |
Ca y est j'ai trouvé!
Enfin, je n'ai toujours pas compris ce qu'il se passait mais grâce à ton code ABCIWEB ça marche! En fait, j'ai regardé ta fonction de renommage et elle est quasiment pareille, sauf que tu as rajouté ça après le str_replace : Code :
$nom_fichier = preg_replace('#[^.a-z0-9_-]+#i', '', $nom_fichier); J'ai testé sous firefox en ne laissant que le preg_replace et ça marche! J'en déduis que contrairement à ce que php me dit, ma chaîne n'était pas vraiment encodée en UTF-8 car le str_replace ne faisait rien. Bref, je ne comprend pas tout mais ça marche et c'est l'essentiel Citation:
Merci à vous et bonne journée, Andréas |
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 242 ![]() |
Bah oui ça rajoute de la complexité dans le code interne à la classe, mais c'est au bénéfice de la simplicité du code final externe nécessaire pour paramétrer les fonctions. Enfin bon l'important est que ton pb soit résolu. Bon après midi
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com