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); }
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]); }
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'); } }