diff --git a/backend/components/Helper.php b/backend/components/Helper.php index d28afa5..157891b 100644 --- a/backend/components/Helper.php +++ b/backend/components/Helper.php @@ -1,10 +1,4 @@ isPost) { $model->imageFiles = UploadedFile::getInstances($model, 'imageFiles'); - $model->upload(); $crop_id = $request->post('crop_id'); + $model->upload($ukrSeeds[$crop_id]); + $cropFactory = CropFactory::getInstance(); $minHeight = $cropFactory->findMinHeight(); $cropContext = new CropContext($cropFactory->getCrop($crop_id)); - + $basePath = dirname(dirname(__DIR__)) . '/uploads/'. $ukrSeeds[$crop_id] . '/'; foreach($model->imageFiles as $file) { $baseName = Helper::transliterate($file->baseName); - $path = dirname(dirname(__DIR__)) . '/uploads/' . $baseName . '.' . $file->extension; + $path = $basePath . $baseName . '.' . $file->extension; $image = Yii::$app->imagine->open($path); $image = $cropContext->cropImage($image, $path); $box = $image->getSize()->heighten($minHeight); $image->resize($box) - ->save(dirname(dirname(__DIR__)) . '/uploads/' . $baseName . '-resized' . '.' . $file->extension); + ->save($basePath . $baseName . '-resized' . '.' . $file->extension); } } return $this->render('index', ['model' => $model, 'ukrSeeds' => $ukrSeeds]); @@ -50,12 +50,8 @@ class ImageController extends Controller $images = []; foreach($files as $file) { - $a = getimagesize($file); - $image_type = $a[2]; - - if(in_array($image_type , [IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP])) - { - $images[] = '/uploads/' . StringHelper::basename($file); + if(Helper::isImage($file)) { + $images[] = Helper::findUrl($file, 2); } } return $this->render('gallery', ['files' => $images]); @@ -82,13 +78,10 @@ class ImageController extends Controller $zip = new \ZipArchive(); $filename = dirname(dirname(__DIR__)) . '/uploads/images.zip'; - $zip->open($filename, \ZipArchive::CREATE); + $zip->open($filename, \ZipArchive::OVERWRITE); foreach($files as $k => $file) { - $a = getimagesize($file); - $image_type = $a[2]; - if(in_array($image_type , [IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP])) - { - $zip->addFile($file, StringHelper::basename($file)); + if(Helper::isImage($file)) { + $zip->addFile($file, Helper::findUrl($file, 1)); } } $zip->close(); diff --git a/backend/models/UploadForm.php b/backend/models/UploadForm.php index 10f5105..a3c5c37 100644 --- a/backend/models/UploadForm.php +++ b/backend/models/UploadForm.php @@ -3,6 +3,7 @@ namespace backend\models; use backend\components\Helper; use yii\base\Model; +use yii\helpers\FileHelper; use yii\web\UploadedFile; class UploadForm extends Model @@ -12,16 +13,21 @@ class UploadForm extends Model public function rules() { return [ - [['imageFiles'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxFiles' => 20], + [['imageFiles'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg', 'maxFiles' => 20], ]; } - public function upload() + public function upload($nameDir) { + $basePath = dirname(dirname(__DIR__)) . '/uploads/'; + + if(!file_exists($basePath . $nameDir)) + FileHelper::createDirectory($basePath . $nameDir . '/'); + if ($this->validate()) { foreach($this->imageFiles as $file) { - $path = dirname(dirname(__DIR__)) . '/uploads/' . Helper::transliterate($file->baseName) . '.' . $file->extension; + $path = $basePath . $nameDir . '/' . Helper::transliterate($file->baseName) . '.' . $file->extension; $file->saveAs($path); } return true; -- libgit2 0.21.4