大家好,我是cakephp的新手。我想在上传之前验证文件,我看到一些人问过同样的问题。但我不想要自定义函数。下面是我不想要的例子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。
谢谢大家
如果不实现自定义函数,你可能无法做到这一点,除非你使用别人构建的插件。如果你想自己实现它并在上传之前验证文件,你需要使用内置的php验证,你可以在这里阅读:文件上传post方法。
然而,我建议使用Miles Johnson的令人难以置信的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
)
)
);
我建议你使用我的FileStorage插件。这是一个完整的解决方案来处理你的应用程序中的文件,完全可以通过事件监听器或扩展其模型自定义。
但是,你也可以直接使用它的FileUploadValidation行为。
对于图像验证,请参阅此方法。它利用了这里用来处理图像的Image库,并包装在Imagine插件中,如果你想处理图像(工作在飞行中,如果存在则自动)。