Salut tout le monde,
Dans mon site j'ai mis des liens pour le téléchargement de fichiers (pdf) dont j'upload via le backOffice, alors parmi ces lien y en a ceux qui me redirige vers l'erreur suivant: Error: The action webroot is not defined in controller AppController .. :

<?php
class AppController extends AppController {
    public function webroot() {
    }
}

j'ai essayé de remplacer les espaces en des underscores mais ça change rien.
quelqu'un a une idée ??
Merci bien.

8 réponses


snap
Réponse acceptée

en faite quand le serveur ne trouve pas le fichier il passe la main a cakePhp, qui du coup, ne trouve pas le controller webroot.
donc soit le fichier demandé n'éxiste pas, soit effectivement les caractère spéciaux font que le serveur ne trouve pas le fichier.

le fichier existe-t-il bien sur le dossier? quels est sont vrai nom?

pour simplifier essaie de faire un fichier qui ne marche pas avec un nom plus cours, genre "é é.pdf"

Keisuke
Réponse acceptée

Hi,

Ca dépends de ton système d'upload...
Exemple, si tu upload et que tu gères via la BDD pour savoir les fichiers qu'il y a d'uploadé, c'est plutot simple.
Au moment de l'upload, tu peux sauvegarder le nom du fichier (si tu veux vraiment l'avoir), puis renommer ton fichier a l'upload...
Du coup, dans la BDD tu as un nom avec accents, celui que t'as renomé (pour le localiser...) et le fichier uploader lui ne contient plus de caractères spéciaux.
Après à toi de voir, soit lui mettre un unique ID, soit juste enlever les caractères spéciaux, genre é=>e; à=>a, space=>_ ....

@+

quels sont les liens qui marchent et ceux qui marchent pas?

je suis d'accord que le nom représente le problème; le fichier existe (uploadé).
je vais essayé ton idea :)

c'est bien ça le problème, les caractères spéciaux (1AC7 é.pdf).
alors que faire si tu as une idée ^^
Merci.

s'agit-il d'un beug CakePhp ??

Ok, merci à vous :)