Beispiel #1
0
 public static function add($bucket, $hash_key, $filename, $save_path, $file_url, $target_id = 0)
 {
     $model_image = new Images();
     $model_image->bucket = $bucket;
     $model_image->hash_key = $hash_key;
     $model_image->filename = $filename;
     $model_image->filepath = $save_path;
     $model_image->file_url = $file_url;
     $model_image->target_id = $target_id;
     $model_image->created_time = date("Y-m-d H:i:s");
     $model_image->save(0);
 }
Beispiel #2
0
 public function run()
 {
     $file = UploadedFile::getInstanceByName($this->fileName);
     if ($file->hasError) {
         throw new HttpException(500, 'Upload error');
     }
     $this->upload = $this->upload . '/' . date('Ym');
     $this->uploadDir = Yii::getAlias('@wwwdir/' . $this->upload . '/');
     $newFileName = \common\components\Utils::fileName(5);
     if (!file_exists($this->uploadDir)) {
         FileHelper::createDirectory($this->uploadDir);
     }
     $fileName = $newFileName . "." . $file->extension;
     if (file_exists($this->uploadDir . $fileName)) {
         $fileName = $newFileName . '-' . uniqid() . '.' . $file->extension;
     }
     $result = $file->saveAs($this->uploadDir . $fileName);
     $response['status'] = 0;
     if ($result) {
         //上传成功";写入数据库
         $item = Yii::$app->request->post('item');
         $item_id = Yii::$app->request->post('item_id');
         $image = new Images();
         $image->item = $item;
         $image->item_id = $item_id;
         $image->filename = $fileName;
         $image->image = "/" . $this->upload . "/" . $fileName;
         $image->filename = $fileName;
         $image->sort_order = 50;
         $n = $image->save();
         if ($n) {
             //$image->
             $response['status'] = 1;
             $response['imgID'] = $image->id;
             $response['filePath'] = "/" . $this->upload . "/" . $fileName;
             $response['initialPreview'] = ["<img src='" . $response['filePath'] . "' class='file-preview-image'>"];
             $response['initialPreviewConfig'] = [['caption' => $fileName, 'width' => "120px;", 'url' => Yii::$app->urlManager->createUrl(['services/remove']), 'key' => $image->id, 'description' => "", 'sort_order' => ""]];
         }
     }
     return Json::encode($response);
 }
 /**
  * 测试封面图片
  *
  * @return \yii\web\Response|\yii\base\string
  */
 public function actionStep1_3($id)
 {
     $this->layout = false;
     $model = Survey::findOne($id);
     // 没有找到
     if (!$model) {
         $model = new Survey();
         if (!$model) {
             return $this->redirect(['my']);
         }
     }
     $this->view->title = $model->title;
     // 图片不存在
     $model_Images = Images::findOne($model->front_img);
     if (!$model_Images) {
         $model_Images = new Images();
         $model_Images->use_count = 0;
     }
     // && !empty($_POST['image'])
     if (isset($_POST['image'])) {
         $load = true;
         // ZCommonFun::print_r_debug($_POST);
         // exit;
         $fileName = $_POST['image'];
         $model_Images->image = $fileName ? $fileName : $model_Images->image;
         // if(empty($model_Images->image)){
         // $model_Images->addError('image','请上传图片');
         // }
         // 设置测试封面
         // 事物开始
         $transaction = Yii::$app->db->beginTransaction();
         try {
             $model->is_publish = 0;
             // 图片保存
             $model_Images->use_count++;
             if (count($model_Images->errors) < 1 && $model_Images->save()) {
                 // 设置测试封面
                 $model->front_img = $model_Images->id;
                 if ($model->save()) {
                     $transaction->commit();
                     switch ($model->tax) {
                         // 奇趣测试
                         case 1:
                             // 跳转到添加测试结果
                             return $this->redirect(['step4_2', 'id' => $model->id]);
                             break;
                             // 分数型心里测试
                         // 分数型心里测试
                         case 2:
                             return $this->redirect(['step4_2_question', 'id' => $model->id]);
                             break;
                             // 跳转型心里测试
                         // 跳转型心里测试
                         case 3:
                             return $this->redirect(['step4_2_question', 'id' => $model->id]);
                             break;
                         default:
                             break;
                     }
                 }
             }
         } catch (\Exception $e) {
             $transaction->rollBack();
         }
         // ZCommonFun::print_r_debug($arr);
         // exit;
     }
     // ZCommonFun::print_r_debug($model_Images);
     return $this->render('step1_3', ['model_Images' => $model_Images, 'tax' => $model->tax, 'model' => $model]);
 }
Beispiel #4
0
 public function createImage()
 {
     /* @var $modelImages \common\models\Images */
     /* @var $modelImagesOfObject \common\models\ImagesOfObject */
     $paramsCrop = Json::decode($this->imageData['imageCrop']);
     $model = new ImageForm();
     $model->image = UploadedFile::getInstance($model, 'image');
     //d($model->image);
     if ($model->validate()) {
         $smallFileName = time() . '_' . Yii::$app->user->id . '_small.' . $model->image->extension;
         // будущее имя миниатюры
         $fileName = time() . '_' . Yii::$app->user->id . '.' . $model->image->extension;
         // будущее имя
         $modelImages = new Images();
         $modelImages->path_small_image = $this->imageData['imagePath'] . $smallFileName;
         // изображение с путем
         $modelImages->path = $this->imageData['imagePath'] . $fileName;
         // изображение с путем
         $modelImages->size = $model->image->size;
         // размер изображения
         $modelImages->status = 0;
         // статус проверки
         $modelImages->temp = $this->imageData['images_temp'];
         // статус временного файла
         /*$transaction = Yii::$app->db->beginTransaction();
           try {*/
         if ($modelImages->save()) {
             $modelImagesOfObject = new ImagesOfObject();
             $modelImagesOfObject->image_id = $modelImages->id;
             $modelImagesOfObject->object_id = $this->imageData['object_id'];
             $modelImagesOfObject->label = $this->imageData['images_label'];
             if ($modelImagesOfObject->save()) {
                 FileHelper::createDirectory('images/' . $this->imageData['imagePath'], $mode = 509);
                 // создаем папку
                 if ($model->image->saveAs('images/' . $this->imageData['imagePath'] . $fileName)) {
                     // файл в папку
                     $image = Image::getImagine();
                     $newImage = $image->open('images/' . $this->imageData['imagePath'] . $fileName);
                     // получаем записаный файл
                     $newImage->rotate($paramsCrop['rotate']);
                     if ($newImage->crop(new Point($paramsCrop['x'], $paramsCrop['y']), new Box($paramsCrop['width'], $paramsCrop['height']))->save('images/' . $this->imageData['imagePath'] . $fileName)) {
                         $newImage = $image->open('images/' . $this->imageData['imagePath'] . $fileName);
                         // создание миниатюры
                         $newImage->thumbnail(new Box($this->imageData['imageSmallWidth'], $this->imageData['imageSmallHeight']))->save('images/' . $this->imageData['imagePath'] . $smallFileName);
                         //$transaction->commit();
                         //d(1);
                     }
                 }
                 \Yii::$app->session->set('image', $modelImages->id);
                 // если объект сохранился, записываем ID в сессию
                 \Yii::$app->session->remove('error');
             }
         } else {
             //d(2);
             \Yii::$app->session->set('error', 'Изображение не добавлено.');
             // если все в порядке, пишем в сессию путь к изображениею
             \Yii::$app->session->remove('image');
         }
         /*} catch (Exception $e) {
               $transaction->rollBack();
           }*/
         //dd([$model->errors, $modelImages->errors, $modelImagesOfObject->errors]);
     } else {
         //dd($model->errors);
         \Yii::$app->session->set('error', $model->errors['image']['0']);
         // если все в порядке, пишем в сессию путь к изображениею
         \Yii::$app->session->remove('image');
     }
 }