Exemplo n.º 1
0
 public function actionUpload()
 {
     if ($_FILES) {
         for ($i = 0; $i < count($_FILES); $i++) {
             if (!in_array(exif_imagetype($_FILES['image']['tmp_name'][$i]), array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG))) {
                 return false;
             }
             $path_info = pathinfo($_FILES['image']['name'][$i]);
             $name = md5($path_info['filename'] . md5(rand(1, 1000000)));
             $dir = 'files/images';
             $BImages = new BImages();
             $BImages->name = $name;
             $BImages->extension = $path_info['extension'];
             if ($BImages->save()) {
                 $BImages->path = $dir . '/' . $BImages->id_img . '/' . $name . '.' . $path_info['extension'];
                 $BImages->save();
                 $path = $dir . '/' . $BImages->id_img;
                 mkdir($_SERVER['DOCUMENT_ROOT'] . '/' . $path, 0777, true);
                 if (!file_exists($_SERVER['DOCUMENT_ROOT'] . '/files/uploads/')) {
                     mkdir($_SERVER['DOCUMENT_ROOT'] . '/files/uploads/');
                 }
                 if (move_uploaded_file($_FILES['image']['tmp_name'][$i], $_SERVER['DOCUMENT_ROOT'] . '/files/uploads/' . $name . '.' . $path_info['extension'])) {
                     $image = Yii::$app->image->load(Yii::getAlias('@webroot/files/uploads/' . $name . '.' . $path_info['extension']));
                     $image->resize(800, NULL, \yii\image\drivers\Image::AUTO);
                     $mark = Yii::$app->image->load(Yii::getAlias('@webroot/images/label.png'));
                     $image->watermark($mark, TRUE, TRUE);
                     $image->save(Yii::getAlias('@webroot/' . $BImages->path));
                     unlink($_SERVER['DOCUMENT_ROOT'] . '/files/uploads/' . $name . '.' . $path_info['extension']);
                     print json_encode(array('id_img' => $BImages->id_img));
                 }
             }
         }
     }
 }