完成文件上传管理

This commit is contained in:
augushong
2021-06-19 18:41:05 +08:00
parent ae9f2c6999
commit 1be98f85b6
30 changed files with 51988 additions and 163 deletions

View File

@@ -7,10 +7,18 @@ use League\Flysystem\Util\MimeType;
use think\facade\Filesystem;
use think\facade\Config;
use think\File;
use think\file\UploadedFile;
class UploadFiles
{
protected static $disk = '';
public static function setDisks($disk)
{
self::$disk = $disk;
}
public static function add()
{
return new AppUploadFiles();
@@ -46,7 +54,7 @@ class UploadFiles
$model_file->save();
return Filesystem::delete($model_file->getData('save_name'));
return Filesystem::disk(self::$disk)->delete($model_file->getData('save_name'));
}
public static function save(Request $request)
@@ -59,6 +67,9 @@ class UploadFiles
$file = request()->file('file');
if (empty($file)) {
return json_message('上传失败');
}
$file_extension = $file->extension();
if ($file_extension == 'php') {
@@ -67,15 +78,13 @@ class UploadFiles
$file_path = $file->getRealPath();
$file_content = file_get_contents($file_path);
// $file_content = file_get_contents($file_path);
// if (strpos($file_content, '<?php') !== false) {
// return json_message('上传文件异常');
// }
if (strpos($file_content, '<?php') !== false) {
return json_message('上传文件异常');
}
if (empty($file)) {
return json_message('上传失败');
}
$dir_name = $request->param('dir', $type);
try {
@@ -92,7 +101,13 @@ class UploadFiles
$dir_name = $type;
}
$model_file = UploadFiles::add();
$model_file->file_name = $file->getFilename();
if ($file instanceof UploadedFile) {
$model_file->file_name = $file->getOriginalName();
} else {
$model_file->file_name = $file->getFilename();
}
$model_file->mime_type = $file->getMime();
$model_file->ext_name = $file->extension();
$model_file->file_size = $file->getSize();
@@ -101,7 +116,7 @@ class UploadFiles
$model_file->create_time = time();
$model_file->type = $type;
$model_file->save_name = Filesystem::putFile('upload/' . $dir_name, $file, 'uniqid');
$model_file->save_name = Filesystem::disk(self::$disk)->putFile('upload/' . $dir_name, $file, 'uniqid');
$model_file->save();
return $model_file;
}

View File

@@ -11,59 +11,53 @@ use think\facade\Session;
class Login extends Common
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
//
return View::fetch();
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
//
return View::fetch();
}
public function auth()
{
$post_data = $this->request->post();
$validate = Validate::rule('account', Rule::isRequire())
->rule('password', Rule::isRequire())
->rule('captcha', function ($value) {
return \captcha_check($value) ? true : '验证码错误';
});
if (!$validate->check($post_data)) {
return json_message($validate->getError());
}
$model_admin = Admin::where('account', $post_data['account'])->find();
public function auth()
{
$post_data = $this->request->post();
$validate = Validate::rule('account',Rule::isRequire())
->rule('password',Rule::isRequire())
->rule('captcha',function($value){
return \captcha_check($value)?true:'验证码错误';
});
if(!$validate->check($post_data)){
Session::set('admin_id',1);
return json_message();
return json_message($validate->getError());
}
$model_admin = Admin::where('account',$post_data['account'])->find();
if(empty($model_admin)){
Session::set('admin_id',1);
return json_message();
return json_message('帐号不存在');
}
if($model_admin->getData('password') !== md5($post_data['password'].$model_admin->getData('salt'))){
Session::set('admin_id',1);
return json_message();
return json_message('密码错误');
}
Session::set('admin_id',$model_admin->id);
return json_message();
if (empty($model_admin)) {
return json_message('帐号不存在');
}
public function logout()
{
Session::clear();
$this->success('已经安全退出','Login/Index');
if ($model_admin->getData('password') !== md5($post_data['password'] . $model_admin->getData('salt'))) {
return json_message('密码错误');
}
Session::set('admin_id', $model_admin->id);
return json_message();
}
public function logout()
{
Session::clear();
$this->success('已经安全退出', 'Login/Index');
}
}

View File

@@ -61,7 +61,7 @@ function get_system_config($name = '', $default = '')
return $list;
}
if (isset($list[$name])) {
if (!empty($list[$name])) {
return $list[$name];
}

View File

@@ -0,0 +1,96 @@
<?php
declare(strict_types=1);
namespace app\index\controller;
use app\UploadFiles;
use think\Request;
class File extends Common
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
//
}
/**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
//
}
/**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
//
}
public function webSave(Request $request)
{
# code...
return UploadFiles::save($request);
}
/**
* 显示指定的资源
*
* @param int $id
* @return \think\Response
*/
public function read($id)
{
//
}
/**
* 显示编辑资源表单页.
*
* @param int $id
* @return \think\Response
*/
public function edit($id)
{
//
}
/**
* 保存更新的资源
*
* @param \think\Request $request
* @param int $id
* @return \think\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete($id)
{
//
}
}

View File

@@ -2,6 +2,7 @@
namespace app\middleware;
use app\UploadFiles;
use think\facade\Db;
use think\facade\Config;
use think\helper\Arr;
@@ -15,6 +16,8 @@ class ConfigInit
$filesystem_config = Config::get('filesystem');
Arr::set($filesystem_config,'default','public');
UploadFiles::setDisks('public');
Config::set($filesystem_config, 'filesystem');
// 社微信开放平台