8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

je me monte un petit gestion de fichier en ligne, mais la fonction php "filesize" n'a pas l'air d'aimer les accents dans les urls.

Ex :


$url = "mémoire.doc";
echo filesize($url);




Sa me retourne l'erreur :
Stat failed for ./mémoire.doc (errno=2 - No such file or directory)

en revanche sans accent sa fonctionne nikel.

Je suis encodé en UTF8, avec tout les paramètres qui vont bien.

VOus avez une idée

merci d'avance

BiB1
Modifié par bentsen (11 Dec 2009 - 16:50)
Salut,

bentsen a écrit :
VOus avez une idée
Oui : supprimer les accents et autres caractères exotiques des noms de fichier ! Smiley smile

Un exemple dans ce post.
J'y ai pensé mais l'idée ne me plait pas trop en faite.

Se sera vraiment en dernier recours. S'est quand incroyable de ne pas pouvoir obtenir la taille d'un fichier qu'il est des accents ou non.

Je continue mes investigations.
Bonjour,

Une autre solution couramment utilisée consiste à conserver le nom du fichier en base de données et lui attribuer un nouveau nom de type GUID par exemple. L'inconvénient c'est qu'il faut passer par la case BdD.
En faite filesize(utf8_decode('./mémoire.doc')); Fonctionne nikel

le problème maintenant s'est que mes urls ne sont pas si simple , ils ressemblent souvent à :

./folders/School/téléphonie/partiel_2009_08_21_3A.pdf. Et quand j'envoi cette url à ma page qui m'affiche la taille du fichier, elle me renvoi un erreur. Je pense qu'il s'agit d'un problème de formatage de l'url, et je pense aussi que je vais chercher longtemps avant de trouver.
Modifié par bentsen (11 Dec 2009 - 16:10)
Salut,

bentsen a écrit :
A ben non, j'ai trouvé. un utf8_encode qui manquait... Smiley confus
Mouaip... c'est toi qui vois mais en sauvegardant tes fichiers avec le même nom que ceux qu'ils avaient au moment de l'upload :
* tu alourdis inutilement ton code avec des utf8_encode et autres...
* tu risques fort d'avoir un jour ou l'autre une surprise à cause d'un caractère inattendu (genre quote ou double quote).

Si pour une raison ou une autre tu as besoin de connaître le nom d'origine d'un fichier il suffit de faire ce que propose Kaaviar. Smiley murf
Modifié par Heyoan (13 Dec 2009 - 09:11)
Oui j'en suis conscient, mais sa me gène de contraindre les utilisateurs (dont moi) à avoir des noms de fichier/dossier différent du nom qu'ils portent sur leur PC. Que mon code soit lourd se n'est pas un soucis, sauf si je décide un jour de le distribuer.

D'ailleurs pour un aperçu de ce que j'essaie de monter : ICI
S'est en cour de développement donc pas de critique sur le fonctionnement, en revanche j'apprécie toujours les bonnes idées. Smiley ravi
Attention :Il ne fonction qu'avec firefox pour le moment.