验证文件大小/文件类型cakephp

时间:2014-03-19 03:44:43

标签: php cakephp cakephp-2.0 cakephp-2.4

大家好,我是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

谢谢大家

2 个答案:

答案 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中包含,如果你想处理图像需要它(动态工作,如果存在则自动工作)。