Commit 4f24d74c93e5d50060474578d8bc549ab4fc441f

Authored by Administrator
1 parent d1f35cd0

Importers CRUD

backend/components/ImageSizer.php
@@ -33,7 +33,9 @@ class ImageSizer extends Widget @@ -33,7 +33,9 @@ class ImageSizer extends Widget
33 [ 33 [
34 'model'=>$this->model, 34 'model'=>$this->model,
35 'field' => $this->field, 35 'field' => $this->field,
36 - 'form' => $this->form 36 + 'form' => $this->form,
  37 + 'height' => $this->height,
  38 + 'width' => $this->width
37 ]); 39 ]);
38 40
39 } 41 }
backend/components/base/BaseController.php
@@ -7,9 +7,13 @@ @@ -7,9 +7,13 @@
7 */ 7 */
8 namespace backend\components\base; 8 namespace backend\components\base;
9 9
  10 +use Yii;
  11 +use yii\web\UploadedFile;
  12 +use backend\models\ImageSizerForm;
10 use yii\web\Controller; 13 use yii\web\Controller;
11 -  
12 - 14 +use Imagine\Gd\Imagine;
  15 +use Imagine\Image\Box;
  16 +use yii\imagine\Image;
13 17
14 class BaseController extends Controller { 18 class BaseController extends Controller {
15 19
@@ -42,24 +46,50 @@ class BaseController extends Controller { @@ -42,24 +46,50 @@ class BaseController extends Controller {
42 46
43 } 47 }
44 48
  49 +// private function resizeImg($w, $h, $filepath,$newfilepath){
  50 +// list($orig_width, $orig_height) = getimagesize($filepath);
  51 +// $width = $orig_width;
  52 +// $height = $orig_height;
  53 +// if($width > $height) {
  54 +// $y = 0;
  55 +// $x = ($width - $height) / 2;
  56 +// $smallestSide = $height;
  57 +// } else {
  58 +// $x = 0;
  59 +// $y = ($height - $width) / 2;
  60 +// $smallestSide = $width;
  61 +// }
  62 +//
  63 +// $image_p = imagecreatetruecolor($w, $h);
  64 +//
  65 +// $image = imagecreatefromjpeg($filepath);
  66 +//
  67 +// imagecopyresampled($image_p, $image, 0, 0, $x, $y,
  68 +// $w, $h, $smallestSide, $smallestSide);
  69 +//
  70 +// imagejpeg($image_p, $newfilepath);
  71 +//
  72 +//
  73 +// }
  74 +
45 public function actionDownloadPhoto() 75 public function actionDownloadPhoto()
46 { 76 {
47 - die('here');  
48 - $model = new UploadForm();  
49 77
  78 + $model = new ImageSizerForm();
  79 + //die(print_r(Yii::$app->request->post()));
50 if ($model->load(Yii::$app->request->post())) { 80 if ($model->load(Yii::$app->request->post())) {
51 81
52 $model->file = UploadedFile::getInstance($model, 'file'); 82 $model->file = UploadedFile::getInstance($model, 'file');
53 83
54 $md5_file = md5_file($model->file->tempName); 84 $md5_file = md5_file($model->file->tempName);
55 $imgDir = Yii::getAlias('@storage/'.$md5_file.'/'); 85 $imgDir = Yii::getAlias('@storage/'.$md5_file.'/');
56 - $imageAlias = Yii::getAlias($imgDir.'480x365'.'.'.$model->file->extension);  
57 - $imageLink = '/storage/'.$md5_file.'/480x365'.'.'.$model->file->extension; 86 + $imageAlias = Yii::getAlias($imgDir.$model->width.'x'.$model->height.'.'.$model->file->extension);
  87 + $imageLink = '/storage/'.$md5_file.$model->width.'x'.$model->height.'.'.$model->file->extension;
58 if(!is_dir($imgDir)) { 88 if(!is_dir($imgDir)) {
59 - mkdir($imgDir, 0777, true); 89 + mkdir($imgDir, 0755, true);
60 } 90 }
61 $model->file->saveAs($imageAlias); 91 $model->file->saveAs($imageAlias);
62 - $this->resizeImg(480, 365, $imageAlias,$imageAlias); 92 + $this->resizeImg($model->width, $model->height, $imageAlias,$imageAlias);
63 return json_encode(['link'=>$imageLink]); 93 return json_encode(['link'=>$imageLink]);
64 94
65 } 95 }
backend/components/views/image_sizer.php
@@ -25,6 +25,10 @@ $this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl @@ -25,6 +25,10 @@ $this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl
25 25
26 $("#<?= $field?>").fileupload({ 26 $("#<?= $field?>").fileupload({
27 dataType: 'json', 27 dataType: 'json',
  28 + formData: {
  29 + height: <?=$height?>,
  30 + width: <?= $width?>
  31 + },
28 done: function (e, data) { 32 done: function (e, data) {
29 var host = window.location.host.toString(); 33 var host = window.location.host.toString();
30 console.log(host); 34 console.log(host);
backend/controllers/SiteController.php
@@ -23,7 +23,7 @@ class SiteController extends BaseController @@ -23,7 +23,7 @@ class SiteController extends BaseController
23 'class' => AccessControl::className(), 23 'class' => AccessControl::className(),
24 'rules' => [ 24 'rules' => [
25 [ 25 [
26 - 'actions' => ['login', 'error'], 26 + 'actions' => ['login', 'error', 'download-photo' ],
27 'allow' => true, 27 'allow' => true,
28 ], 28 ],
29 [ 29 [
backend/models/ImageSizerForm.php 0 → 100644
  1 +<?php
  2 +namespace backend\models;
  3 +
  4 +use yii\base\Model;
  5 +use yii\web\UploadedFile;
  6 +
  7 +/**
  8 + * UploadForm is the model behind the upload form.
  9 + */
  10 +class ImageSizerForm extends Model
  11 +{
  12 + /**
  13 + * @var UploadedFile file attribute
  14 + */
  15 + public $file;
  16 +
  17 + /**
  18 + * @return array the validation rules.
  19 + */
  20 + public function rules()
  21 + {
  22 + return [
  23 + [['width', 'height'], 'integer'],
  24 + [['field', 'model', 'form'], 'string', 'max' => 255],
  25 + [['file'], 'file'],
  26 + ];
  27 + }
  28 +}
0 \ No newline at end of file 29 \ No newline at end of file
backend/views/user/_form.php
@@ -33,7 +33,7 @@ use yii\helpers\ArrayHelper; @@ -33,7 +33,7 @@ use yii\helpers\ArrayHelper;
33 ], 'id', 'name')) ?> 33 ], 'id', 'name')) ?>
34 34
35 35
36 - <?= \backend\components\ImageSizer::widget(['form'=>$form, 'model'=> $model, 'field'=>'photo']); ?> 36 + <?= \backend\components\ImageSizer::widget(['form'=>$form, 'model'=> $model, 'field'=>'photo','width'=>200,'height'=>200]); ?>
37 37
38 <?= $form->field($model, 'contacts')->textInput(['maxlength' => true]) ?> 38 <?= $form->field($model, 'contacts')->textInput(['maxlength' => true]) ?>
39 39
@@ -18,7 +18,8 @@ @@ -18,7 +18,8 @@
18 "yiisoft/yii2": ">=2.0.6", 18 "yiisoft/yii2": ">=2.0.6",
19 "yiisoft/yii2-bootstrap": "*", 19 "yiisoft/yii2-bootstrap": "*",
20 "yiisoft/yii2-swiftmailer": "*", 20 "yiisoft/yii2-swiftmailer": "*",
21 - "yiisoft/multiparser": "*" 21 + "yiisoft/multiparser": "*",
  22 + "yiisoft/yii2-imagine": "*"
22 }, 23 },
23 "require-dev": { 24 "require-dev": {
24 "yiisoft/yii2-codeception": "*", 25 "yiisoft/yii2-codeception": "*",