kak / storage
文件上传/调整大小/裁剪文件移动存储
0.1.4
2019-08-14 13:05 UTC
Requires
- php: >=5.4.0
- aws/aws-sdk-php: 3.*
- bower-asset/blueimp-file-upload: 9.10.5
- bower-asset/cropper: 0.10.1
- yiisoft/yii2: *
- yiisoft/yii2-imagine: *
- yiisoft/yii2-jui: *
This package is auto-updated.
Last update: 2024-09-17 22:36:56 UTC
README
文件上传/调整大小
欢迎任何贡献 预览
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist kak/storage "*"
或在您的 composer.json
文件的 require 部分添加
"kak/storage": "*"
并运行命令 composer update
用法
请设置配置参数 Yii::$app->params
/** @docs https://console.aws.amazon.com/iam/home Generation access key and secret */ $amazon_config = [ 'key' => '', 'secret' => '', 'bucket' => 'my', 'level' => 2, 'type' => 'amazon', 'region' => 'us-east-1', ] //... 'storage' => [ 'storages' => [ // use amazon config 'photo' => $amazon_config, 'custom_name' => [], // local server save files 'tmp' => [ 'level' => 0, ], ], ],
例如使用控制器上传
public function actions() { return [ 'upload' => [ 'class' => UploadAction::className(), 'form_name' => 'kak\storage\models\UploadForm', 'storage' => 'tmp', // save image default tmp storage 'resize_image' => [ // list formats 'preview' => [1024,1024, UploadAction::IMAGE_RESIZE, 'options' => [] ], 'thumbnail' => [120,120, UploadAction::IMAGE_THUMB], '350' => [350,280, UploadAction::IMAGE_RESIZE], ] ], ]; }
resize_image.options
- 如果为真,则保存动画图像,否则首先移动剪辑
- 质量 10 - 100
保存模型然后控制器
/** * @param $id int edit post * @return string */ public function actionUpdate($id) { $model = $this->findPostById($id); $uploadForm = new \kak\storage\models\UploadForm(['meta_name' => 'image_base']); $uploadForm->meta = $postModel->images_json; if($this->savePostForm($model, $uploadForm)) { return $this->redirect(['/dashboard/post/update','id' => $postModel->id]); } return $this->render('form',compact( 'model', 'uploadForm' )); } /** * @param $model Post * @param $uploadForm \kak\storage\models\UploadForm * @return bool */ protected function savePostForm(&$model,&$uploadForm) { if ($model->load(Yii::$app->request->post()) && $model->validate()) { $result = $uploadForm->saveToStorage('tmp','images',[]); $model->images_json = Json::encode($result); return $model->save(); } return false; }
扩展安装后,只需在代码中使用即可
<div> <?=\kak\storage\Upload::widget([ 'model' => $uploadFormModel, 'url' => ['/dashboard/default/upload', 'resize_type' => 'thumbnail,350'] ]); ?> </div> <hr>
如果 GET 中只有这些类型,则将保存调整大小的图像
使用 pjax
注册资产主要布局
StorageAsset::register($view);
pjax 事件添加代码
$(document).on('pjax:end','.pjax-wrapper',function(e){ //init old gui $('.kak-storage-upload').kakStorageUpload({}); });
路线图
2018: Q1 添加 Google Cloud 存储,将 guzzle http
更改为 yii2-http-client
,更改 aws-sdk-php Q2 创建新的上传小部件 + 测试