コード例 #1
0
ファイル: SchoolController.php プロジェクト: CNAEF/go9999_v2
 public function actionIndex()
 {
     $this->bodyId = 'page-school';
     if (Yii::app()->request->isPostRequest) {
         $obj = array();
         //图片不存在
         if (!isset($_FILES['photo'])) {
             $obj['extra']['code'] = '400';
             exit(json_encode($obj));
         }
         //图片超过 2M
         $maxFileSize = Yii::app()->params['uploadMaxSize'] + 1;
         if ($_FILES['photo']['size'] > $maxFileSize) {
             $obj['extra']['code'] = '400';
             $obj['extra']['errors'] = ['photo' => '最大2M'];
             exit(json_encode($obj));
         }
         if (isset($_POST['project'])) {
             $_POST['project'] = json_encode($_POST['project']);
         }
         $school = new School();
         $school->attributes = $_POST;
         $school->photo = EEH::moveUploadFile($_FILES['photo'], Yii::app()->params['uploadPathImage'] . 'school_photo/');
         // 压缩图片
         $info = pathinfo($school->photo);
         $smallFile = Yii::app()->params['uploadPathImage'] . 'school_photo/' . $school->photo;
         $bigFile = Yii::app()->params['uploadPathImage'] . 'school_photo/' . $info['filename'] . '_origin.' . $info['extension'];
         $image = Yii::app()->image->load($smallFile);
         $image->save($bigFile);
         // 保存原文件
         $image->resize(Yii::app()->params['uploadMaxWidth'], Yii::app()->params['uploadMaxHeight'])->quality(Yii::app()->params['uploadQuality']);
         $image->save($smallFile);
         // 保存压缩后文件
         if (!$school->save()) {
             $obj['extra']['code'] = '400';
             foreach ($school->errors as $key => $value) {
                 $obj['extra']['errors'][$key] = $value;
             }
         } else {
             $obj['extra']['desc'] = '报名成功。';
             $obj['extra']['code'] = '200';
         }
         exit(json_encode($obj));
     }
     $this->render('index');
 }
コード例 #2
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionUpload()
 {
     $fileCheckPassed = true;
     $maxFileSize = Yii::app()->params['uploadMaxSize'] + 1;
     //2M
     $fileCheckId = array('upfile' => 0);
     $fileInfo = array();
     $fileInfo['original'] = '';
     $fileInfo['name'] = '';
     $fileInfo['url'] = '';
     $fileInfo['size'] = '';
     $fileInfo['type'] = '';
     $fileInfo['state'] = '';
     //check file exist + size
     foreach ($fileCheckId as $oneFileId => $v) {
         if (isset($_FILES[$oneFileId])) {
             if ($_FILES[$oneFileId]['size'] > $maxFileSize) {
                 $fileCheckPassed = false;
                 $errorMessage[$oneFileId] = '最大2M';
             }
         } else {
             $fileCheckPassed = false;
         }
     }
     //move file
     if ($fileCheckPassed) {
         //move
         foreach ($fileCheckId as $oneFileId => $v) {
             $fileInfo['original'] = 'aa';
             $fileInfo['type'] = EEH::uploadFileExt($_FILES[$oneFileId]['type']);
             $fileInfo['name'] = EEH::moveUploadFile($_FILES[$oneFileId], Yii::app()->params['uploadPathNewsImage']);
             $fileInfo['url'] = Yii::app()->baseUrl . Yii::app()->params['newsImagePath'] . $fileInfo['name'];
             $fileInfo['size'] = $_FILES[$oneFileId]['size'];
             $fileInfo['state'] = 'SUCCESS';
         }
     }
     echo CJSON::encode($fileInfo);
 }
コード例 #3
0
 /**
  * Index Page, for now just render all static content.
  */
 public function actionIndex()
 {
     $this->bodyId = 'page-join';
     //get name as flag
     $request = Yii::app()->request;
     $name = $request->getPost('name', false);
     if ($name !== false) {
         $fileCheckPassed = true;
         $errorMessage = array();
         $maxFileSize = Yii::app()->params['uploadMaxSize'] + 1;
         //2M
         $fileCheckId = array('id_photo' => 0, 'user_photo' => 0, 'edu_photo' => 0);
         //check file exist + size
         foreach ($fileCheckId as $oneFileId => $v) {
             if (isset($_FILES[$oneFileId])) {
                 if ($_FILES[$oneFileId]['size'] > $maxFileSize) {
                     $fileCheckPassed = false;
                     $errorMessage[$oneFileId] = '最大2M';
                 }
             } else {
                 $fileCheckPassed = false;
             }
         }
         //save db, move file
         if ($fileCheckPassed) {
             $volunteer = new VolunteerW();
             $volunteer->attributes = $_POST;
             //massive attribute
             //move
             foreach ($fileCheckId as $oneFileId => $v) {
                 if (in_array($oneFileId, array('user_photo', 'id_photo', 'edu_photo'))) {
                     $volunteer->{$oneFileId} = EEH::moveUploadFile($_FILES[$oneFileId], Yii::app()->params['uploadPathImage'] . $oneFileId . '/');
                     // 压缩图片
                     $info = pathinfo($volunteer->{$oneFileId});
                     $smallFile = Yii::app()->params['uploadPathImage'] . $oneFileId . '/' . $volunteer->{$oneFileId};
                     $bigFile = Yii::app()->params['uploadPathImage'] . $oneFileId . '/' . $info['filename'] . '_origin.' . $info['extension'];
                     $image = Yii::app()->image->load($smallFile);
                     $image->save($bigFile);
                     // 保存原文件
                     $image->resize(Yii::app()->params['uploadMaxWidth'], Yii::app()->params['uploadMaxHeight'])->quality(Yii::app()->params['uploadQuality']);
                     $image->save($smallFile);
                     // 保存压缩后文件
                 }
             }
             if (!$volunteer->save()) {
                 //display errors when save fail.
                 //     	            var_dump($volunteer->errors);
                 $obj = array();
                 $obj['extra']['code'] = '400';
                 foreach ($volunteer->errors as $key => $value) {
                     $obj['extra']['errors'][$key] = $value;
                 }
                 echo json_encode($obj);
             } else {
                 $obj = array();
                 $obj['extra']['desc'] = '报名成功。';
                 $obj['extra']['code'] = '200';
                 echo json_encode($obj);
             }
         } else {
             //file validate fail, every fail b4 db connection.
             $obj = array();
             $obj['extra']['code'] = '400';
             $obj['extra']['errors'] = $errorMessage;
             echo json_encode($obj);
         }
         exit;
     }
     $this->render('index');
 }
コード例 #4
0
ファイル: Staff.php プロジェクト: CNAEF/go9999_v2
 /**
  * auto save creationUser_id and creationDate
  */
 public function beforeSave()
 {
     if (parent::beforeSave()) {
         if ($this->isNewRecord) {
             $this->s_creationUser_id = Yii::app()->user->id;
             $this->s_creationDate = EED::f();
         }
         //check for s_avatar
         $avatarFileObj = array();
         $avatarFileObj['size'] = 0;
         if (isset($this->uploadFile['Staff']['size']['s_avatar'])) {
             $avatarFileObj['size'] = $this->uploadFile['Staff']['size']['s_avatar'];
         }
         if (isset($this->uploadFile['Staff']['type']['s_avatar'])) {
             $avatarFileObj['type'] = $this->uploadFile['Staff']['type']['s_avatar'];
         }
         if (isset($this->uploadFile['Staff']['tmp_name']['s_avatar'])) {
             $avatarFileObj['tmp_name'] = $this->uploadFile['Staff']['tmp_name']['s_avatar'];
         }
         if ($avatarFileObj['size'] > 0) {
             //have avatar upload do file upload and save to model
             //old avatar path for delete
             $oldAvatar = $this->s_avatar;
             $this->s_avatar = EEH::moveUploadFile($avatarFileObj, Yii::app()->params['uploadPathStaffImage']);
             if ($this->s_avatar != '') {
                 //remove old avatar file
                 unlink(Yii::app()->params['uploadPathStaffImage'] . $oldAvatar);
             } else {
                 //save old avatar back if upload fail, this is file level fail so we don't need show any message
                 $this->s_avatar = $oldAvatar;
             }
         }
         return true;
     } else {
         return false;
     }
 }