public function deleteFile($recordId, $userId) { $fileRecord = FileRecord::find()->where(['f_record_id' => $recordId, 'state' => '0'])->one(); $fileSize = $fileRecord->file_size; $disk = Disk::findOne(['user_id' => $userId]); $tran = \Yii::$app->db->beginTransaction(); try { $fileRecord->state = '1'; if ($fileRecord->save()) { $disk->available_size = $disk->available_size + $fileSize; $parent_folder = FileRecord::findOne(['f_record_id' => $fileRecord->parent_id]); while ($parent_folder->parent_id != '0') { $parent_folder->file_size = $parent_folder->file_size - $fileSize; if ($parent_folder->save()) { $parent_folder = FileRecord::findOne(['f_record_id' => $parent_folder->parent_id]); } else { $tran->rollBack(); return 'error'; } } $logService = new LogService(); if ($logService->removeLog($fileRecord->f_record_id) != 'success') { $tran->rollBack(); return 'error'; } if ($disk->save()) { $tran->commit(); return 'success'; } } } catch (Exception $e) { $tran->rollBack(); return 'error'; } }
public function setUserSize($userEmail, $size, $info) { $user = User::findOne(['user_email' => $userEmail]); $disk = Disk::findOne(['user_id' => $user->user_id]); $disk->capacity = $disk->capacity + $size * (1024 * 1024 * 1024); $disk->available_size = $disk->available_size + $size * (1024 * 1024 * 1024); $tran = \Yii::$app->db->beginTransaction(); if ($disk->save()) { $logService = new LogService(); if ($logService->setUserSize($user->user_id, $info) == 'success') { $tran->commit(); return 'success'; } } $tran->rollBack(); return 'error'; }
public function actionSetFile() { if (Yii::$app->request->isPost) { $fileId = $_POST['file_id']; $info = $_POST['info']; $logService = new LogService(); $msg = $logService->logManageFile($fileId, $info); return $msg; if ($msg == 'success') { $data['code'] = '0'; } else { $data['code'] = '1'; $data['msg'] = $msg; } return json_encode($data); } }
public function actionPersonInfo() { $this->layout = 'person_info'; $userId = $_SESSION['user']['user_id']; $disk = Disk::findOne(['user_id' => $userId]); $fileService = new FileService(); $typeSize = $fileService->typeSize($userId); $logService = new LogService(); $logs = $logService->getLoginLog(); return $this->render('person_info', ['disk' => $disk, 'typeSize' => $typeSize, 'logs' => $logs]); }
/** * Action getfile * download file * 文件下载action */ public function actionGetfile() { if (Yii::$app->request->isGet) { $file_id = $_GET['file_id']; $file = UserFile::findOne($file_id); $logService = new LogService(); $logService->downloadLog($file_id); Header("Content-type: " . $file->filetype); Header("Accept-Ranges: bytes"); Header("Accept-Length: " . $file->length); Header("Content-Disposition: attachment; filename=" . $file->filename); /* Header("Content-Disposition: attachment; filename=".$model->filename); header("Content-Transfer-Encoding:binary"); header('Content-Length:'.$model->filesize); header('Content-type:'.$model->filetype); header('Expires:0'); header('Content-Type:application-x/force-download');*/ $fp = $file->file->getResource(); fseek($fp, 0); while (!feof($fp)) { set_time_limit(0); echo fread($fp, 1024); flush(); ob_flush(); } fclose($fp); } }