我正在進行圖像上載。我試圖在模型中進行圖像驗證(就像它應該,對吧?),但是我無法驗證工作。CakePHP 3.x - 上傳文件驗證程序始終失敗
我把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'
]);
//...
}
爲了測試我的控制器樣子(我硬編碼的現有文件):
$comment = $this->Comments->newEntity([
'body' => $data['body'],
'bin_id' => $bin_id,
'user_id' => $this->Auth->user('id'),
'photofile' => 'C:/Users/Robert/Downloads/test.jpg'
]);
這個文件只是一個幾個字節,但在調試後$comment
在'photofile'中顯示錯誤:
'[errors]' => [
'photofile' => [
'upload' => 'Not a valid file'
]
],
那麼爲什麼驗證器總是失敗?我是否正確使用它?
非常明確的答案。我決定使用'fileSize()'和'mimeType()'驗證器,因爲它們會產生更多有用的錯誤。你的建議仍然適用於兩者。 – Roberto