29b842c0
Administrator
add field v.1
|
1
2
3
4
5
6
7
|
<?php
/**
* Created by PhpStorm.
* User: Cibermag
* Date: 31.08.2015
* Time: 9:58
*/
|
ab6d9045
Administrator
add Vitaliy's wid...
|
8
|
namespace common\modules\file\controllers;
|
29b842c0
Administrator
add field v.1
|
9
|
use Yii;
|
eb7e82fb
Administrator
29.02.16
|
10
|
use yii\helpers\ArrayHelper;
|
29b842c0
Administrator
add field v.1
|
11
|
use yii\web\UploadedFile;
|
8c448b56
Administrator
add yii jquery
|
12
|
use common\modules\file\models\ImageSizerForm;
|
29b842c0
Administrator
add field v.1
|
13
14
15
16
17
|
use yii\web\Controller;
use Imagine\Gd\Imagine;
use Imagine\Image\Box;
use yii\imagine\Image;
|
ab6d9045
Administrator
add Vitaliy's wid...
|
18
|
class UploaderController extends Controller {
|
29b842c0
Administrator
add field v.1
|
19
20
21
22
23
24
25
26
27
28
29
30
|
public function isBigger($width,$height,$w,$h)
{
if($width>$w){
return true;
}else if($height >$h) {
return true;
}
return false;
}
|
ab6d9045
Administrator
add Vitaliy's wid...
|
31
32
33
34
35
36
37
38
|
private function getUserPath(){
if(isset(Yii::$app->user->id)){
return 'user_'.Yii::$app->user->id;
}else {
return 'guest';
}
}
|
29b842c0
Administrator
add field v.1
|
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
private function resizeImg($w, $h, $imageAlias,$imageAliasSave){
$img = Image::getImagine()->open(Yii::getAlias($imageAlias));
$size = $img->getSize();
$width = $size->getWidth();
$height = $size->getHeight();
$e_width = $w/$h;
$e_height = $h/$w;
$e1_width = $width/$height;
$e1_height = $height/$width;
|
8c448b56
Administrator
add yii jquery
|
54
|
|
29b842c0
Administrator
add field v.1
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
if($e_width<$e1_width){
$new_width = $width*($e_width/$e1_width);
$y = 0;
$x = $width/ 2-($new_width/2);
$width = $new_width;
}else {
$new_height = $height*($e_height/$e1_height);
$x = 0;
$y = $height/2-($new_height/2);
$height = $new_height;
}
|
29b842c0
Administrator
add field v.1
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
Image::crop($imageAlias, $width, $height,[$x,$y])
->save(Yii::getAlias($imageAliasSave), ['quality' =>
100]);
$imagine = new Imagine();
$imagine->open($imageAliasSave)
->resize(new Box($w, $h))
->save($imageAliasSave, array('flatten' => false));
}
private function deleteImages($old_img){
if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){
|
eb7e82fb
Administrator
29.02.16
|
92
93
94
95
96
97
98
99
100
101
102
103
104
|
$rootDir = explode("/", $old_img);
$row = $_SERVER['DOCUMENT_ROOT'].'/'.$rootDir[1].'/'.$rootDir[2].'/'.$rootDir[3].'/';
$allFiles = scandir($row);
$allFiles = array_slice($allFiles, 2);
foreach($allFiles as $oldFile){
unlink($row.$oldFile);
}
|
29b842c0
Administrator
add field v.1
|
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
}
}
public function actionDeleteImage(){
$request = Yii::$app->request->post();
if($request){
if ($request['old_img']) {
$this->deleteImages($request['old_img']);
}
if(isset($request['action']) && $request['action']=='save'){
$object = str_replace('-', '\\',$request['model']);
$model = new $object;
$model = $model->findOne($request['id']);
$model->$request['field'] = $request['new_url'];
|
29b842c0
Administrator
add field v.1
|
122
123
124
125
126
127
128
129
130
|
$model->save();
}
}
}
public function actionDownloadPhoto()
{
|
29b842c0
Administrator
add field v.1
|
131
132
133
|
$model = new ImageSizerForm();
$request = Yii::$app->request->post();
|
ea09d15d
Yarik
test
|
134
|
|
29b842c0
Administrator
add field v.1
|
135
136
|
if ($request) {
|
033f9331
Administrator
09.02.16
|
137
|
$model->multi = isset($request['multi'])? 1 : 0;
|
ea09d15d
Yarik
test
|
138
|
|
29b842c0
Administrator
add field v.1
|
139
140
|
$model->file = UploadedFile::getInstance($model, 'file');
|
ab6d9045
Administrator
add Vitaliy's wid...
|
141
|
$md5_file = md5_file($model->file->tempName).rand(1, 1000);
|
29b842c0
Administrator
add field v.1
|
142
|
|
ab6d9045
Administrator
add Vitaliy's wid...
|
143
|
$imgDir = Yii::getAlias('@storage/'.$this->getUserPath().'/'.$md5_file.'/');
|
29b842c0
Administrator
add field v.1
|
144
145
146
147
148
149
150
151
152
|
$imageOrigAlias = Yii::getAlias($imgDir.'original'.'.'.$model->file->extension);
if(!is_dir($imgDir)) {
mkdir($imgDir, 0755, true);
}
$model->file->saveAs($imageOrigAlias);
|
29b842c0
Administrator
add field v.1
|
153
|
|
eb7e82fb
Administrator
29.02.16
|
154
|
if(isset($request['size'] )){
|
29b842c0
Administrator
add field v.1
|
155
|
|
eb7e82fb
Administrator
29.02.16
|
156
|
$request['size'] = ArrayHelper::toArray(json_decode($request['size']));
|
29b842c0
Administrator
add field v.1
|
157
|
|
eb7e82fb
Administrator
29.02.16
|
158
159
160
161
162
163
164
165
166
167
168
|
foreach($request['size'] as $size){
if($size['width'] && $size['height']){
$imageAlias = Yii::getAlias($imgDir.$size['width'].'x'.$size['height'].'.'.$model->file->extension);
$imageLink = '/storage/'.$this->getUserPath().'/'.$md5_file.'/'.$size['width'].'x'.$size['height'].'.'.$model->file->extension;
$this->resizeImg($size['width'], $size['height'], $imageOrigAlias,$imageAlias);
}
}
|
29b842c0
Administrator
add field v.1
|
169
170
171
|
} else {
|
ab6d9045
Administrator
add Vitaliy's wid...
|
172
|
$imageLink = '/storage/'.$this->getUserPath().'/'.$md5_file.'/'.'original'.'.'.$model->file->extension;
|
29b842c0
Administrator
add field v.1
|
173
174
|
}
|
eb7e82fb
Administrator
29.02.16
|
175
176
|
|
29b842c0
Administrator
add field v.1
|
177
|
if($model->multi){
|
ea09d15d
Yarik
test
|
178
|
$view = $this->renderPartial('@common/widgets/views/_gallery_item', [
|
29b842c0
Administrator
add field v.1
|
179
180
|
'item' => ['image'=>$imageLink],
]);
|
29b842c0
Administrator
add field v.1
|
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
return json_encode(['link'=>$imageLink, 'view' =>$view]);
} else {
return json_encode(['link'=>$imageLink]);
}
}
}
public function getex($filename) {
return end(explode(".", $filename));
}
public function actionImagesUpload(){
|
ab6d9045
Administrator
add Vitaliy's wid...
|
199
|
|
29b842c0
Administrator
add field v.1
|
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
if($_FILES['upload'])
{
if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name'])) )
{
$message = "Вы не выбрали файл";
}
else if ($_FILES['upload']["size"] == 0 OR $_FILES['upload']["size"] > 2050000)
{
$message = "Размер файла не соответствует нормам";
}
else if (($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png") AND ($_FILES['upload']['type'] != 'image/gif'))
{
$message = "Допускается загрузка только картинок JPG и PNG.";
}
else if (!is_uploaded_file($_FILES['upload']["tmp_name"]))
{
$message = "Что-то пошло не так. Попытайтесь загрузить файл ещё раз.";
}
else{
|
ab6d9045
Administrator
add Vitaliy's wid...
|
219
220
221
222
223
224
225
226
227
228
229
230
231
|
$name =$_FILES['upload']['name'].'.'.$this->getex($_FILES['upload']['name']);
$path = "../../storage/".$this->getUserPath()."/images/";
if(!is_dir($path)) {
mkdir($path, 0755, true);
}
move_uploaded_file($_FILES['upload']['tmp_name'], $path.$name);
$full_path = '/storage/'.$this->getUserPath().'/images/'.$name;
|
29b842c0
Administrator
add field v.1
|
232
|
$message = "Файл ".$_FILES['upload']['name']." загружен";
|
ab6d9045
Administrator
add Vitaliy's wid...
|
233
|
|
29b842c0
Administrator
add field v.1
|
234
235
236
237
238
239
240
241
242
|
}
$callback = $_REQUEST['CKEditorFuncNum'];
echo '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("'.$callback.'", "'.$full_path.'", "'.$message.'" );</script>';
}
}
}
|