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;
|
6676fbc7
Administrator
28.04.16 перенес ...
|
9
|
use common\modules\file\components\UploaderComponent;
|
29b842c0
Administrator
add field v.1
|
10
|
use Yii;
|
eb7e82fb
Administrator
29.02.16
|
11
|
use yii\helpers\ArrayHelper;
|
29b842c0
Administrator
add field v.1
|
12
|
use yii\web\UploadedFile;
|
8c448b56
Administrator
add yii jquery
|
13
|
use common\modules\file\models\ImageSizerForm;
|
29b842c0
Administrator
add field v.1
|
14
|
use yii\web\Controller;
|
29b842c0
Administrator
add field v.1
|
15
|
|
ab6d9045
Administrator
add Vitaliy's wid...
|
16
|
class UploaderController extends Controller {
|
29b842c0
Administrator
add field v.1
|
17
|
|
29b842c0
Administrator
add field v.1
|
18
19
|
|
ab6d9045
Administrator
add Vitaliy's wid...
|
20
21
22
23
24
25
26
27
|
private function getUserPath(){
if(isset(Yii::$app->user->id)){
return 'user_'.Yii::$app->user->id;
}else {
return 'guest';
}
}
|
29b842c0
Administrator
add field v.1
|
28
29
|
|
29b842c0
Administrator
add field v.1
|
30
31
32
33
|
private function deleteImages($old_img){
if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){
|
eb7e82fb
Administrator
29.02.16
|
34
35
36
37
38
39
40
41
42
43
44
45
46
|
$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
|
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
}
}
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
|
64
65
66
67
68
69
70
71
72
|
$model->save();
}
}
}
public function actionDownloadPhoto()
{
|
29b842c0
Administrator
add field v.1
|
73
74
75
|
$model = new ImageSizerForm();
$request = Yii::$app->request->post();
|
ea09d15d
Yarik
test
|
76
|
|
29b842c0
Administrator
add field v.1
|
77
78
|
if ($request) {
|
033f9331
Administrator
09.02.16
|
79
|
$model->multi = isset($request['multi'])? 1 : 0;
|
ea09d15d
Yarik
test
|
80
|
|
29b842c0
Administrator
add field v.1
|
81
82
|
$model->file = UploadedFile::getInstance($model, 'file');
|
ab6d9045
Administrator
add Vitaliy's wid...
|
83
|
$md5_file = md5_file($model->file->tempName).rand(1, 1000);
|
29b842c0
Administrator
add field v.1
|
84
|
|
ab6d9045
Administrator
add Vitaliy's wid...
|
85
|
$imgDir = Yii::getAlias('@storage/'.$this->getUserPath().'/'.$md5_file.'/');
|
29b842c0
Administrator
add field v.1
|
86
87
88
89
90
91
92
93
94
|
$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
|
95
|
|
eb7e82fb
Administrator
29.02.16
|
96
|
if(isset($request['size'] )){
|
29b842c0
Administrator
add field v.1
|
97
|
|
eb7e82fb
Administrator
29.02.16
|
98
|
$request['size'] = ArrayHelper::toArray(json_decode($request['size']));
|
29b842c0
Administrator
add field v.1
|
99
|
|
eb7e82fb
Administrator
29.02.16
|
100
101
102
103
104
105
106
|
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;
|
6676fbc7
Administrator
28.04.16 перенес ...
|
107
108
109
|
$resizer = new UploaderComponent();
$resizer->resizeImg($size['width'], $size['height'], $imageOrigAlias,$imageAlias);
|
eb7e82fb
Administrator
29.02.16
|
110
111
112
|
}
}
|
29b842c0
Administrator
add field v.1
|
113
114
115
|
} else {
|
ab6d9045
Administrator
add Vitaliy's wid...
|
116
|
$imageLink = '/storage/'.$this->getUserPath().'/'.$md5_file.'/'.'original'.'.'.$model->file->extension;
|
29b842c0
Administrator
add field v.1
|
117
118
|
}
|
eb7e82fb
Administrator
29.02.16
|
119
120
|
|
29b842c0
Administrator
add field v.1
|
121
|
if($model->multi){
|
ea09d15d
Yarik
test
|
122
|
$view = $this->renderPartial('@common/widgets/views/_gallery_item', [
|
29b842c0
Administrator
add field v.1
|
123
124
|
'item' => ['image'=>$imageLink],
]);
|
29b842c0
Administrator
add field v.1
|
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
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...
|
143
|
|
29b842c0
Administrator
add field v.1
|
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
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...
|
163
164
165
166
167
168
169
170
171
172
173
174
175
|
$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
|
176
|
$message = "Файл ".$_FILES['upload']['name']." загружен";
|
ab6d9045
Administrator
add Vitaliy's wid...
|
177
|
|
29b842c0
Administrator
add field v.1
|
178
179
180
181
182
183
184
185
186
|
}
$callback = $_REQUEST['CKEditorFuncNum'];
echo '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("'.$callback.'", "'.$full_path.'", "'.$message.'" );</script>';
}
}
}
|