Je travaille sur un téléchargement d'image. J'essaie de faire la vérification d'image dans le modèle (comme il se doit, non?), Mais je n'arrive pas à faire fonctionner la validation.CakePHP 3.x - Les valideurs de fichiers lors du téléchargement échouent toujours
Je mets ce qui suit dans src/Model/Table/CommentTable
:
public function validationDefault(Validator $validator)
{
//...
$validator->add('photofile', 'upload', [
'rule' => ['uploadedFile', ['maxSize' => 1048576, 'optional' => true, 'types' => ['image/*']]],
'message' => 'Not a valid file'
]);
//...
}
Pour tester mon contrôleur ressemble (je Codés en dur un fichier existant):
$comment = $this->Comments->newEntity([
'body' => $data['body'],
'bin_id' => $bin_id,
'user_id' => $this->Auth->user('id'),
'photofile' => 'C:/Users/Robert/Downloads/test.jpg'
]);
Ce fichier est seulement quelques octets, mais après le débogage est $comment
montre une erreur dans 'photofile':
'[errors]' => [
'photofile' => [
'upload' => 'Not a valid file'
]
],
Alors, pourquoi le validateur échoue-t-il toujours? Est-ce que je l'utilise correctement?
réponse très claire. J'ai décidé d'utiliser plutôt les validateurs 'fileSize()' et 'mimeType()' car ils produisent des erreurs plus utiles. Votre conseil est toujours applicable aux deux. – Roberto