定制 mvccore/ext-form-field-file 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mvccore/ext-form-field-file

Composer 安装命令:

composer require mvccore/ext-form-field-file

包简介

MvcCore - Extension - Form - Field - File - form field input:file to upload file(s) and uploaded files validation.

README 文档

README

Latest Stable Version License PHP Version

MvcCore form extension with input type file and file(s) upload validation.

This upload has no backward compatible javascript or flash inside. It's strictly HTML5 with no additional info displaying. You can extend this field to do it.

Installation

composer require mvccore/ext-form-field-file

Fields And Default Validators

  • input:file
    • Files
      • configured by default
      • validate submitted file or multiple files by checking:
        • build in PHP upload errors (max. POST size atc...)
        • if file is not any system file and if it is realy uploaded file (is_uploaded_file(), is_file(), filesize()`)
        • allowed characters in filename, this validator automaticly sanitize uploaded filename every time
        • accept attribute with allowed mime types by uploaded file(s) magic bytes (or by extension in accept attribute, converted on server side to mime type to check magic bytes)
        • ZIP/TAR.GZ/PNG file bombs

Features

  • always server side checked attributes required, disabled and readonly
  • all HTML5 specific and global atributes (by Mozilla Development Network Docs)
  • every field has it's build-in specific validator described above
  • every build-in validator adds form error (when necessary) into session and than all errors are displayed/rendered and cleared from session on error page, where user is redirected after submit
  • any field is possible to render naturally or with custom template for specific field class/instance
  • very extensible field classes - every field has public template methods:
    • SetForm() - called immediatelly after field instance is added into form instance
    • PreDispatch() - called immediatelly before any field instance rendering type
    • Render() - called on every instance in form instance rendering process
      • submethods: RenderNaturally(), RenderTemplate(), RenderControl(), RenderLabel() ...
    • Submit() - called on every instance when form is submitted

Basic Example

$form = (new \MvcCore\Ext\Form($controller))->SetId('demo');
...
$photos = new \MvcCore\Ext\Forms\Fields\Time([
	'name'		=> 'photos',
	'label'		=> 'Add your photos:',
	'accept'	=> 'image/*',
	'maxCount'	=> 5, // max. uploaded photos
	'maxSize'	=> 2097152, // max. 2 MB in binary for one item
]);
...
$form->AddFields($photos);

TODO

  • implement RAR file bombs detection and bz2 file bombs

统计信息

  • 总下载量: 339
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2018-09-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固