insthync/yii2-file-upload-widget
Composer 安装命令:
composer require insthync/yii2-file-upload-widget
包简介
Blueimp file upload widget for the Yii framework (Forked from https://github.com/2amigos/yii2-file-upload-widget to update for latest Yii2)
README 文档
README
Renders a BlueImp jQuery File Upload plugin. That plugin integrates multiple file selection, drag&drop support, progress bars, validation and preview of images.
Installation
The preferred way to install this extension is through composer.
Either run
$ composer require insthync/yii2-file-upload-widget:dev-master
or add
"insthync/yii2-file-upload-widget": "dev-master"
to the require section of your composer.json file.
Usage
The widget comes with two flavors:
- FileUpload: Basic and BasicPlus
- FileUploadUI: BasicPlus UI
<?php use dosamigos\fileupload\FileUpload; // without UI ?> <?= FileUpload::widget([ 'model' => $model, 'attribute' => 'image', 'url' => ['media/upload', 'id' => $model->id], // your url, this is just for demo purposes, 'options' => ['accept' => 'image/*'], 'clientOptions' => [ 'maxFileSize' => 2000000 ], // Also, you can specify jQuery-File-Upload events // see: https://github.com/blueimp/jQuery-File-Upload/wiki/Options#processing-callback-options 'clientEvents' => [ 'fileuploaddone' => 'function(e, data) { console.log(e); console.log(data); }', 'fileuploadfail' => 'function(e, data) { console.log(e); console.log(data); }', ], ]); ?> <?php use dosamigos\fileupload\FileUploadUI; // with UI ?> <?= FileUploadUI::widget([ 'model' => $model, 'attribute' => 'image', 'url' => ['media/upload', 'id' => $tour_id], 'gallery' => false, 'fieldOptions' => [ 'accept' => 'image/*' ], 'clientOptions' => [ 'maxFileSize' => 2000000 ], // ... 'clientEvents' => [ 'fileuploaddone' => 'function(e, data) { console.log(e); console.log(data); }', 'fileuploadfail' => 'function(e, data) { console.log(e); console.log(data); }', ], ]); ?> <?php // action examples public function actionImageUpload() { $model = new WhateverYourModel(); $imageFile = UploadedFile::getInstance($model, 'image'); $directory = Yii::getAlias('@frontend/web/img/temp') . DIRECTORY_SEPARATOR . Yii::$app->session->id . DIRECTORY_SEPARATOR; if (!is_dir($directory)) { FileHelper::createDirectory($directory); } if ($imageFile) { $uid = uniqid(time(), true); $fileName = $uid . '.' . $imageFile->extension; $filePath = $directory . $fileName; if ($imageFile->saveAs($filePath)) { $path = '/img/temp/' . Yii::$app->session->id . DIRECTORY_SEPARATOR . $fileName; return Json::encode([ 'files' => [ [ 'name' => $fileName, 'size' => $imageFile->size, 'url' => $path, 'thumbnailUrl' => $path, 'deleteUrl' => 'image-delete?name=' . $fileName, 'deleteType' => 'POST', ], ], ]); } } return ''; } public function actionImageDelete($name) { $directory = Yii::getAlias('@frontend/web/img/temp') . DIRECTORY_SEPARATOR . Yii::$app->session->id; if (is_file($directory . DIRECTORY_SEPARATOR . $name)) { unlink($directory . DIRECTORY_SEPARATOR . $name); } $files = FileHelper::findFiles($directory); $output = []; foreach ($files as $file) { $fileName = basename($file); $path = '/img/temp/' . Yii::$app->session->id . DIRECTORY_SEPARATOR . $fileName; $output['files'][] = [ 'name' => $fileName, 'size' => filesize($file), 'url' => $path, 'thumbnailUrl' => $path, 'deleteUrl' => 'image-delete?name=' . $fileName, 'deleteType' => 'POST', ]; } return Json::encode($output); }
Please, check the jQuery File Upload documentation for further information about its configuration options.
Using the Actions
TODO
Testing
$ ./vendor/bin/phpunit
Contributing
Please see CONTRIBUTING for details.
Credits
License
The BSD License (BSD). Please see License File for more information.
web development has never been so fun
www.2amigos.us
insthync/yii2-file-upload-widget 适用场景与选型建议
insthync/yii2-file-upload-widget 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 11 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「upload」 「yii」 「widget」 「yii2」 「yii 2」 「2amigos」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 insthync/yii2-file-upload-widget 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 insthync/yii2-file-upload-widget 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 insthync/yii2-file-upload-widget 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
The file manager intended for using Laravel with CKEditor / TinyMCE / Colorbox
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
Priveate for SkeekS CMS
Laravel Media Popup to upload/view the files
Add a weather widget to Flarum
C3JS Chart for Yii Framework 2.0
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2022-11-23