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


validate file size / file type cakephp

大家好,我是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插件中,如果你想处理图像(工作在飞行中,如果存在则自动)。