shuishuiafeng/webuploader-cropper
Composer 安装命令:
composer require shuishuiafeng/webuploader-cropper
包简介
webloader和cropper组件
关键字:
README 文档
README
此扩展集成webuploader图片上传插件webuploader.js和cropper.js实现的截图和多图上传,在bailangzhan/yii2-webuploader的基础上修改
安装
推荐使用composer进行安装
$ composer require shuishuiafeng/webuploader-cropper
使用
params.php或者params-local.php内增加webuploader和domain配置项
// 图片服务器的域名设置,拼接保存在数据库中的相对地址,可通过web进行展示 ```php 'domain' => 'http://blog.m/',//目前用了阿里云所以这个域名暂时没用 'webuploader' => [ // 后端处理图片的地址,value 是相对的地址,是全局的处理图片地址,也可以在图片上传的前端小部件FileInput调用时候中覆盖掉,因为不同的图片上传调用的后台处理地址可能不同 'uploadUrl' => 'blog/upload', // 多文件分隔符 'delimiter' => ',', // 基本配置 'baseConfig' => [ 'defaultImage' => 'http://img1.imgtn.bdimg.com/it/u=2056478505,162569476&fm=26&gp=0.jpg',//项目文件web路径/img/default-img.jpg 'disableGlobalDnd' => true,//禁用掉浏览器拖拽打开新文件页面的功能 'accept' => [ 'title' => 'Images', 'extensions' => 'gif,jpg,jpeg,bmp,png', 'mimeTypes' => 'image/*', ], 'pick' => [ 'multiple' => false, ], ], ],
关于微信的配置也在params.php或者params-local.php内增加wechat_options的配置
'wechat_options' => [ 'debug' => true, 'app_id' =>"wxxxxxxxxxxxx", 'secret' =>'xxxxxxxxxxxxxxxxxx', 'token' =>'xxxxxxxxxxx', 'aes_key'=>'xxxxxxx', 'log' => [ 'level' => 'debug', 'file' => \Yii::getAlias('@mobile/runtime/logs/easywechat.log') ], ]
###区分ActiveForm和非ActiveForm的基础使用
<?php // ActiveForm echo $form->field($model, 'file')->widget('dmdedu\FileInput', [ ]); // 非 ActiveForm echo '<label class="control-label">图片</label>'; echo \dmdedu\FileInput::widget([ 'model' => $model, 'attribute' => 'file', ]); ?>
###单图无截图上传小部件
//距离在formbuilder中的form中使用 'image'=>[ 'type'=>'widget', 'class'=>\dmdedu\FileInput::className(), 'clientOptions'=>[ 'accept' => [ 'extensions' => 'gif,jpg,jpeg,bmp,png', 'mimeTypes' => 'image/gif,image/jpg,image/jpeg,image/bmp,image/png' ], 'pick' => [//多图模式默认关闭 'class' => 'btn-default', 'innerHTML' => '图' ], /*非截图的设置如下*/ 'screenshot' => false,//如果是截图就是base64流,不是截图就是普通文件上传 'server' => \yii\helpers\Url::to('/dmdfile/upload/image'), 'uploadFieldName' => 'upfile' /*---end 非截图---*/ /*微信端单图非截图上传*/ 'server' => \yii\helpers\Url::to('/dmdfile/upload/imagewechat'),//微信图片的传入的内容都是base64的,如果重写上传功能请按base64来获取内容并存储 'platform' => 'wechat',//必须的,微信端必须要有要不然完蛋了 'fileNumLimit' => 1//设置多图上传时候的最大上传文件数目,不用设置默认就是1 /*---end---*/ ], ],
###单图截图上传 除了下面指出的部分,其他和上面的配置一致;
/* 截图的设置如下:*/ 'screenshot' => true, 'server' => \yii\helpers\Url::to('/dmdfile/upload/imagestream'), /*微信端截图*/ 'screenshot' => true,//微信端也是可以截图的 'server' => \yii\helpers\Url::to('/dmdfile/upload/imagewechat'),//保持 'platform' => 'wechat',//微信端必须要有要不然完蛋了 'fileNumLimit' => 1
###多图上传 多图上传不会有截图功能,所以不用考虑,只需要区分是电脑端上传还是微信端上传即可,使用示例如下
'imageList' => [ 'type' => 'widget', 'class'=>\dmdedu\FileInput::className(), 'clientOptions'=>[ 'accept' => [ 'extensions' => 'gif,jpg,jpeg,bmp,png', 'mimeTypes' => 'image/gif,image/jpg,image/jpeg,image/bmp,image/png'//不要用image/* 会造成打开选择文件很卡 ], 'pick' => [ 'multiple' => true,//将多图模式打开 ], /*正常电脑端上传多图*/ 'server' => \yii\helpers\Url::to('/dmdfile/upload/image'),//文件上传服务器处理的路径 'uploadFieldName' => 'upfile'//在前端存放文件的字段名 /*----end:电脑端多图上传----*/ /*微信端多图上传*/ 'server' => \yii\helpers\Url::to('/dmdfile/upload/imagewechat'),//保持 'platform' => 'wechat',//微信端必须要有要不然完蛋了 'fileNumLimit' => 6//设置多图上传时候的最大上传文件数目,可选区间1-9的整数 /*---end: 微信端多图上传----*/ ], ]
控制器
进行上传文件操作的controller的地址可以在params.php或者params-local.php中配置 Yii::$app->params['webuploader']['uploadUrl'], 也可以在 FileInput的clientOptions中配置 server 项。控制器需要返回的数据格式如下
// 错误时 {"code": 1, "msg": "error"} // 正确时, 其中 attachment 指的是保存在数据库中的路径,url 是该图片在web可访问的地址。。。。这里还没修整 {"code": 0, "url": "http://domain/图片地址", "attachment": "图片地址"}
注意
如果是修改的多图片操作,务必保证 $model->file = 'src1,src2,src3,...'; 或者 $model->file = ['src1', 'src2'. 'src3', ...];
shuishuiafeng/webuploader-cropper 适用场景与选型建议
shuishuiafeng/webuploader-cropper 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 3, 最近一次更新时间为 2017 年 12 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「yii2」 「cropper」 「webuploader」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 shuishuiafeng/webuploader-cropper 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 shuishuiafeng/webuploader-cropper 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 shuishuiafeng/webuploader-cropper 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
yii2-webuploader组件
A custom URL rule class for Yii 2 which allows to create translated URL rules
Integrate Cropper into laravel-admin
CitaNZ's image cropper for SilverStripe 4
SCEditor, a lightweight WYSIWYG BBCode & HTML editor extension for Yii 2.0 Framework
WebUploader是一个简单的以Html5为主,Flash为辅的现代文件上传组件。在现代的浏览器里面能充分发挥html5的优势,同时又不摒弃主流IE浏览器,延用原来的Flash运行时。两套运行时,同样的调用方式,可供用户任意选用。WebUploader采用大文件分片并发上传,极大的提高了文件上传效率。
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-12-22