大家好,我是cakephp的新手。 我想在上传之前验证文件,我发现有些人问同样的事情。但我不想要自定义功能。 这是我不想要的例子 validation on a input file in cakephp
以及我喜欢的代码,但它不起作用
型号:
class Career extends AppModel
{
public $validate = array(
'file' => array(
'checktype' => array(
'rule' => array('extension',array('pdf','doc','docx')),
'message' => 'Please supply a valid file type (PDF OR WORD)',
),
'checksize' =>array(
'rule' => array('fileSize', '<=', '1MB'),
'message' => 'File must be less than 1MB',
),
),
);
}
我还想补充一点,该文件不是必须/必须的,但是如果要上传它,则必须是 .pdf / .doc / .docx 且小于 1MB
谢谢大家
答案 0 :(得分:0)
除非您使用其他人构建的插件,否则您可能无法实现自定义功能。如果你想自己实现它并在上传之前验证文件,你需要使用内置的php验证,你可以在这里阅读:File upload post method。
但是我建议使用Miles Johnson的令人难以置信的Uploader插件,你可以在这里找到: Uploader
使用他的库,您可以像这样应用验证:
public $actsAs = array(
'Uploader.FileValidation' => array(
'image' => array(
'maxWidth' => 100,
'minHeight' => 100,
'extension' => array('gif', 'jpg', 'png', 'jpeg'),
'type' => 'image',
'mimeType' => array('image/gif'),
'filesize' => 5242880,
'required' => true
)
)
);
答案 1 :(得分:0)
我建议你使用我的FileStorage plugin。它是处理应用程序中文件的完整解决方案,可通过事件监听器或扩展其模型进行完全自定义。
但是,您也可以use it's FileUploadValidation behavior。
对于Image validation,请参阅this method。它利用Image库来处理图像,并在Imagine plugin中包含,如果你想处理图像需要它(动态工作,如果存在则自动工作)。