当前位置:网站首页>fastadmin图片上传方法改造
fastadmin图片上传方法改造
2022-08-09 08:46:00 【tjg888888】
文件路径:application/admin/controller/ajax.php
方法:
upload
改造为:
public function upload() { $fileNow = request()->file('file')->getInfo(); $name = $fileNow['name']; $format = strrchr($name, '.');//截取文件后缀名如 (.jpg) $oss = new OssClient( env('oss.accessKeyId'), env('oss.accessSecret'), env('oss.endpoint') ); $fileName = "backend/upload/".date('Ymd'.time()).sha1(date('YmdHis', time()) . uniqid()) . $format; $result = $oss->uploadFile(env('oss.publicbucket'), $fileName, $fileNow['tmp_name']); $ossurl = $result["info"]["url"]; $ossurl = str_replace('http','https',$ossurl); Config::set('default_return_type', 'json'); $file = $this->request->file('file'); if (empty($file)) { $this->error(__('No file upload or server upload limit exceeded')); } //判断是否已经存在附件 $sha1 = $file->hash(); $extparam = $this->request->post(); $upload = Config::get('upload'); preg_match('/(\d+)(\w+)/', $upload['maxsize'], $matches); $type = 0; $typeDict = ['b' => 0, 'k' => 1, 'kb' => 1, 'm' => 2, 'mb' => 2, 'gb' => 3, 'g' => 3]; $size = (int)$upload['maxsize'] * pow(1024, isset($typeDict[$type]) ? $typeDict[$type] : 0); $fileInfo = $file->getInfo(); $suffix = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION)); $suffix = $suffix ? $suffix : 'file'; $replaceArr = [ '{year}' => date("Y"), '{mon}' => date("m"), '{day}' => date("d"), '{hour}' => date("H"), '{min}' => date("i"), '{sec}' => date("s"), '{random}' => Random::alnum(16), '{random32}' => Random::alnum(32), '{filename}' => $suffix ? substr($fileInfo['name'], 0, strripos($fileInfo['name'], '.')) : $fileInfo['name'], '{suffix}' => $suffix, '{.suffix}' => $suffix ? '.' . $suffix : '', '{filemd5}' => md5_file($fileInfo['tmp_name']), ]; $savekey = $upload['savekey']; $savekey = str_replace(array_keys($replaceArr), array_values($replaceArr), $savekey); $uploadDir = substr($savekey, 0, strripos($savekey, '/') + 1); $fileName = substr($savekey, strripos($savekey, '/') + 1); // $splInfo = $file->validate(['size' => $size])->move(ROOT_PATH . '/public/uploads' . $uploadDir, $fileName); if ($splInfo) { $imagewidth = $imageheight = 0; if (in_array($suffix, ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf'])) { $imgInfo = getimagesize($splInfo->getPathname()); $imagewidth = isset($imgInfo[0]) ? $imgInfo[0] : $imagewidth; $imageheight = isset($imgInfo[1]) ? $imgInfo[1] : $imageheight; } $params = array( 'admin_id' => (int)$this->auth->id, 'user_id' => 0, 'filesize' => $fileInfo['size'], 'imagewidth' => $imagewidth, 'imageheight' => $imageheight, 'imagetype' => $suffix, 'imageframes' => 0, 'mimetype' => $fileInfo['type'], 'url' => $uploadDir . $splInfo->getSaveName(), 'uploadtime' => time(), 'storage' => 'local', 'sha1' => $sha1, 'extparam' => json_encode($extparam), ); $attachment = model("attachment"); $attachment->data(array_filter($params)); $attachment->save(); \think\facade\Hook::listen("upload_after", $attachment); $this->success(__('Upload successful'), null, [ 'url' => $ossurl ]); } else { // 上传失败获取错误信息 $this->error($file->getError()); } }
边栏推荐
- 进程和计划任务
- QT program generates independent exe program (pit-avoiding version)
- NodeMCU(ESP8266) 接入阿里云物联网平台 踩坑之旅
- Three handshakes, four waves
- leetcode 33. 搜索旋转排序数组 (二分经典题)
- 【愚公系列】2022年08月 Go教学课程 033-结构体方法重写、方法值、方法表达式
- Xpath之爬取全国城市名称学习
- 加密技术和电子竞技如何促进彼此的发展
- VMware virtual machine cannot be connected to the Internet after forced shutdown
- IO byte stream reads text Chinese garbled
猜你喜欢
随机推荐
define 可变参数定义
[Vulnerability reproduction] CVE-2018-7490 (path traversal)
【CNN】白话迁移学习中域适应
Makefile中patsubst、wildcard、notdir的使用
leetcode 32. 最长有效括号 (困难)
Where does detection go forward?
第五届蓝帽杯初赛 misc 赛后复现
jdbctemplate连接sql server,代码中查出来的数据跟数据库中不一致,如何解决?
探索APP性能优化之稳定性优化(解决方案)
eTS UI development learning
Redis redis 】 【 the expiration of listening
Shell programming loop statement and function
数据解析之bs4学习
Static routing principle and configuration
STM32 如何知道FLASH的使用情况
PoPW代币分配机制或将点燃下一个牛市
权限管理模型 ---- ACL、RBAC和ABAC(详解)
How does STM32 know the usage of FLASH
Database MySQL installation and uninstallation
Matlab, and nonlinear equations solving linear equations