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