проверить размер файла / тип файла 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 и меньше 1 МБ.

Спасибо вам всем


person M Farahat    schedule 19.03.2014    source источник


Ответы (2)


Вы, вероятно, не сможете сделать это без реализации пользовательских функций, если только вы не используете плагин, созданный кем-то другим. Если вы хотите реализовать это самостоятельно и проверить файл перед его загрузкой, вам нужно будет использовать встроенную проверку php, о которой вы можете прочитать здесь: Метод отправки файла для загрузки.

Однако я предлагаю использовать невероятный плагин 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
       )
  )
);
person Bart Van Remortele    schedule 19.03.2014

Я рекомендую вам использовать мой плагин FileStorage. Это комплексное решение для обработки файлов в вашем приложении, полностью настраиваемое с помощью прослушивателей событий или путем расширения его моделей.

Однако вы также можете просто использовать поведение FileUploadValidation< /а>.

Для проверки изображения см. этого метода. Он использует библиотеку изображений, которая используется здесь для обработки изображений и заключена в плагин Imagine это необходимо, если вы хотите обрабатывать изображения (работает на лету, автоматически, если есть).

person floriank    schedule 19.03.2014