Bonjour,
Je rencontre un petit problème d'accent dans les liens( pointant vers un PDF) d'une liste que je génère, suivant une certaine logique.

Tout se passe bien pour les liens ne comportant pas d'accent et pour ceux qui en ont j'ai une erreur indiquant que la classe "FilesController" est absente.

Le soucis c'est que je ne peux pas du tout renommer ces fichiers car je les recupère en l'état après le passage d'un cron.

Donc si quelqu'un à une solution à me soumettre ou une idée, afin que je puisse ouvir ces liens (pdf), cela me débloquerait

Bien cordialement.

3 réponses


Tu pourrais faire une routine qui renomme tes fichiers .pdf en CamelCase automtiquement ?
En général dans les noms de fichier on ne met ni caractères spéciaux ni espace

Bonjour.
Si je comprend bien, tu affiches directement tes fichiers pdf en pointant tes liens dans le dossier files que tu as dans le dossier webroot.
Mais tu fais une erreur, il est déconseillé d'afficher aux utilisateurs tes fichiers dans le dossier webroot, il est préférable de les afficher par exemple via une action d'un de tes controller.
Tu pourrais par exemple faire une action dans ton controller pages, qui pourrait se nommer file (par exemple), dans ton fichier routes.php, tu définis quelque chose du genre :

Router::parseExtensions();
Router::setExtensions(['json', 'xml', 'csv', 'rss', 'pdf']);

Router::connect('/file/:name', array('controller' => 'pages', 'action' => 'file'), array('pass' => array('name'), 'name' => '[/* Expression régulière */]'));

Ce qui serait même mieux, ce serait que si tu sauvegardes tes fichiers en base de données, de passer en paramêtre l'ID d'enregistrement de la base de données, du fichiers à afficher, de cette manière tu évites les problèmes avec le nom du fichier.
Le soucis c'est que je ne peux pas du tout renommer ces fichiers car je les recupère en l'état après le passage d'un cron.
Ne dites pas de bétise, même dans le cas où tu ne pourrais pas renommer un fichier lorsque tu l'uploade, rien ne t'empêche de le faire par la suite.

Bonjour,
Merci pour vos réponses je vais regarder cela en détail.

Bien cordialement.