Bonjour,
Je suis entraine de développer mon site sur cakephp 3
Je veux que les utilisateur puis télécharger leurs avatar. Je ne veux pas qui télécharge n'importequelle fichier. J'ai trouver ce plugin :
https://github.com/Xety/Cake3-Upload
Dans mon model UsersTable j'ai cette règle de validation
public function validationDefault(Validator $validator)
{
$validator
->requirePresence('avatar', 'create')
->allowEmpty('avatar')
->add('avatar',[
'rule' => ['mimeType',['image/jpeg', 'image/png']],
]);
return $validator;
}
Le problème est que cette règle de validation est ignoréé et la savegarde ce fait même si l'extention du fichier n'est pas valide.
Ce la documentation de ce plugin il faut faire ceci :
Dans ma vue edit :
<?= $this->Form->input('avatar_file', ['type' => 'file']) ?>
et dans la mon entity Users :
protected $_accessible = [
'avatar_file' => true
];
Quand je inicialise le plugin dans mon UsersTable :
$this->addBehavior('Xety/Cake3Upload.Upload',[
'fields' => [
'avatar' => [
'path' => 'uploads/avatar/:id/:md5',
'overwrite' => false
]
]
]);
Ce qui veux dire que j"ai un champ avatar dans ma basse de donée.
Merci de votre aide.
Il te manque un tableau imbriqué et ton champ s'appelle avatar_file donc Je dirai que ta règle devrait ressembler à ceci :
->add('avatar_file', [
'mimeType' => [
'rule' => ['mimeType', ['image/jpeg', 'image/png']],
'message' => __("The mimeType is not allowed."),
],
])
As tu des tests qui prouvent que les deux premières règles fonctionnent aussi (avec le champ avatar au lieu de avatar_file ?
@Bowser65 : J'utilise HTML5 <form artribut> n'est pas supporter
http://www.w3schools.com/tags/att_form_accept.asp