From 33f1bdc72938773d17b79129b007260db2deb4a3 Mon Sep 17 00:00:00 2001 From: wyn <1074145239@qq.com> Date: Tue, 4 Aug 2026 10:36:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=98=E7=BD=91=E4=B8=93=E5=88=8A=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=96=87=E4=BB=B6=E6=B7=BB=E5=8A=A020M=E7=9A=84?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Special.php | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/application/api/controller/Special.php b/application/api/controller/Special.php index 6685d75c..a6069a6e 100644 --- a/application/api/controller/Special.php +++ b/application/api/controller/Special.php @@ -923,11 +923,21 @@ class Special extends Controller /** * 上传文章的文件 + * coverLetter / picturesAndTables / manuscirpt 限制不超过 20M */ public function up_file($type) { $file = request()->file($type); if ($file) { + $limitTypes = ['coverLetter', 'picturesAndTables', 'manuscirpt']; + if (in_array($type, $limitTypes, true)) { + $maxSize = 20 * 1024 * 1024; + $fileInfo = $file->getInfo(); + $fileSize = isset($fileInfo['size']) ? intval($fileInfo['size']) : 0; + if ($fileSize > $maxSize) { + return json(['code' => 1, 'msg' => 'File size cannot exceed 20MB']); + } + } $info = $file->move(ROOT_PATH . 'public' . DS . $type); if ($info) { return json(['code' => 0, 'upurl' => str_replace("\\", "/", $info->getSaveName())]); @@ -1046,7 +1056,7 @@ class Special extends Controller $specials = isset($res['specials']) ? $res['specials'] : (isset($res['data']['specials']) ? $res['data']['specials'] : []); foreach ($specials as $k => $v) { unset($specials[$k]['abstract']); - $specials[$k]['icon'] = $specials[$k]['icon']?$journal_image_url."specialIcon/".$specials[$k]['icon']:""; + $specials[$k]['icon'] = $specials[$k]['icon']?$journal_image_url."journalicon/".$specials[$k]['icon']:""; } $re['specials'] = $specials; $re['count'] = isset($res['data']['count']) ? intval($res['data']['count']) : 0; @@ -2078,28 +2088,31 @@ class Special extends Controller } /** - * 上传专刊封面图(转发至 journal Special/up_icon_file) - * 表单字段名:specialIcon + * 上传专刊封面图(转发至 journal master/Journal/up_file) + * 入参表单字段兼容 specialIcon / journalicon;转发官网时使用 journalicon */ public function up_icon_file() { $file = request()->file('specialIcon'); + if (!$file) { + $file = request()->file('journalicon'); + } if (!$file) { return jsonError('specialIcon is required'); } $info = $file->getInfo(); $tmpPath = isset($info['tmp_name']) ? $info['tmp_name'] : ''; - $originName = isset($info['name']) ? $info['name'] : 'specialIcon'; + $originName = isset($info['name']) ? $info['name'] : 'journalicon'; $mime = isset($info['type']) && $info['type'] !== '' ? $info['type'] : 'application/octet-stream'; if ($tmpPath === '' || !is_file($tmpPath)) { return jsonError('upload file invalid'); } $base_url = Env::get('journal.base_url'); - $url = rtrim($base_url, '/') . '/api/Special/up_icon_file'; + $url = rtrim($base_url, '/') . '/master/Journal/up_file'; $postFields = [ - 'specialIcon' => new \CURLFile(realpath($tmpPath), $mime, $originName), + 'journalicon' => new \CURLFile(realpath($tmpPath), $mime, $originName), ]; $ch = curl_init($url);