From 33a004745c51aab3f05f806cbbb1ff459c0dab9c Mon Sep 17 00:00:00 2001 From: augushong Date: Wed, 18 Nov 2020 12:02:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=B1=BB=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E8=BF=9C=E7=A8=8B=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/UploadFiles.php | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/app/UploadFiles.php b/app/UploadFiles.php index 38924e9..5b09b4b 100644 --- a/app/UploadFiles.php +++ b/app/UploadFiles.php @@ -3,8 +3,10 @@ namespace app; use app\model\UploadFiles as AppUploadFiles; +use League\Flysystem\Util\MimeType; use think\facade\Filesystem; use think\facade\Config; +use think\File; class UploadFiles { @@ -75,7 +77,7 @@ class UploadFiles return json_message('上传失败'); } - $dir_name = $request->param('dir', 'data'); + $dir_name = $request->param('dir', $type); try { $model_file = self::saveFile($file, $type, $dir_name); return json_message($model_file->append(['src'])->toArray()); @@ -84,11 +86,14 @@ class UploadFiles } } - public static function saveFile($file, $type, $dir_name) + public static function saveFile(File $file, $type, $dir_name = null) { + if (is_null($dir_name)) { + $dir_name = $type; + } $model_file = UploadFiles::add(); - $model_file->file_name = $file->getOriginalName(); - $model_file->mime_type = $file->getOriginalMime(); + $model_file->file_name = $file->getFilename(); + $model_file->mime_type = $file->getMime(); $model_file->ext_name = $file->extension(); $model_file->file_size = $file->getSize(); $model_file->file_md5 = $file->md5(); @@ -100,4 +105,18 @@ class UploadFiles $model_file->save(); return $model_file; } + + public static function saveUrlFile($url, $type) + { + $file_data = geturl($url); + + $mime_type = MimeType::detectByContent($file_data); + $ext_name = array_search($mime_type, MimeType::getExtensionToMimeTypeMap()); + $temp_file = tempnam(app()->getRuntimePath(), 'url_save_') . '.' . $ext_name; + file_put_contents($temp_file, $file_data); + $file = new File($temp_file); + $model_file = self::saveFile($file, $type); + unlink($temp_file); + return $model_file; + } }