完成文件上传管理

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;
}