private function Uploads($isAjax=false) {
//ЗАГРУЗКА МНОГО ФОТОК
if (Yii::$app->request->isPost) {
$images = UploadedFile::getInstancesByName('upload_ajax');
if ($images) {
if($isAjax===true){
$ref =Yii::$app->request->post('ref');
}else{
$Post = Yii::$app->request->post('Post');
$ref = $Post['ref'];
}
$this->CreateDir($ref);
foreach ($images as $file) {
$fileName = $file->baseName . '.' . $file->extension;
$realFileName = md5($file->baseName.time()) . '.' . $file->extension;
$savePath = Post::UPLOAD_FOLDER.'/'.$ref.'/'. $realFileName;
if($file->saveAs($savePath)){
if($this->isImage(Url::base(true).'/'.$savePath)){
$this->createThumbnail($ref,$realFileName);
}
$model = new Uploads;
$model->ref = $ref;
$model->file_name = $fileName;
$model->real_filename = $realFileName;
$model->save();
if ($isAjax===true) {
echo json_encode(['success' => 'true']);
}
} else {
if($isAjax===true) {
echo json_encode(['success'=>'false','eror'=>$file->error]);
}
}
}
}
}
}
private function createThumbnail($folderName, $fileName, $width = Post::IMAGE_WIDTH) {
$uploadPath = Post::getUploadPath().'/'.$folderName.'/';
$file = $uploadPath.$fileName;
/** рабочий оригинал с расширением от "yurkinx/yii2-image": "dev-master"
$image = Yii::$app->image->load($file);
$image->resize($width);
$image->save($uploadPath.'thumbnail/'.$fileName);
*/
$watermark = imagecreatefrompng(Yii::getAlias(Post::WATERMARK_PATH));
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$size = getimagesize($file);
$startx = $size[0] - $watermark_width;
$starty = $size[1] - $watermark_height;
Imagine::watermark($file , Post::WATERMARK_PATH, [
$startx,
$starty ])
->resize(new Box(Post::IMAGE_WIDTH, Post::IMAGE_HEIGHT))
->save($uploadPath.'thumbnail/'.$fileName, ['quality' => Post::IMAGE_QUALITY]);
return;
}