我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Dcat Admin 入门应用(五)文件上传之OSS自定义上传

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Dcat Admin 入门应用(五)文件上传之OSS自定义上传

数据表单通过以下的调用来生成图片/文件上传表单,支持本地和云存储的文件上传,该文章介绍如何通过自定义上传路径处理文件上传和将文件存储到阿里云OSS。

1、上传组件是基于webuploader实现的,具体的使用配置可参考webuploader官方文档。

2、通过自定义上传地址,实现定制化处理上传文件

3、使用juhedata/aliyun-oss组件完成oss图片上传

自定义文件上传

创建文件上传表单

    
    protected function formImg(Form $form)
    {
        $form->image('img', '图片')
            ->autoUpload() //选择图片后自动上传
            ->disableRemove() //禁止删除数据库存储的文件地址:防止误删
            ->disableAutoSave() //禁止上传成功后自动保存到数据库:根据项目需求
            ->accept('jpg,png,gif,jpeg', 'image
    public function handle(Request $request, $type = 'banner')
    {
        //判断上传类型和文件上传规则是否存在
        if (!isset($this->allowDir[$type]) || !isset($this->{$this->allowDir[$type]})) {
            return $this->responseErrorMessage(errorMsg(1001));
        }

        $file = $this->file();
        // 上传的文件属性;如 article:文章,校验在 OssUpload 类
        if (!is_file($file)) {
            return $this->responseErrorMessage('上传文件不存在或错误');
        }

        // 判断文件是否上传成功
        if (method_exists($file, 'isValid') && $file->isValid()) {
            // 校验上传的文件
            if (($url = $this->uploadFile($file, $type) && is_numeric($url)) {
                return $this->responseErrorMessage($url.errorMsg($url, '文件上传异常'));
            }
            return $this->responseUploaded($url, $url);
        }
        return $this->responseErrorMessage('文件上传失败');
    }
}

安装juhedata/aliyun-oss

安装上传组件

composer require juhedata/aliyun-oss

添加OSS文件

将OSS文件复制到App/Services目录下或自定义的位置

OssUpload处理上传

  
    protected function uploadFile($file, $dir = 'banner')
    {
        $bucket = 'sdkcn';

        $filePath = $file->path();

        $extension = $file->guessClientExtension();

        $imgName = time() . '-' . mb_substr(md5("sdk-img:" . $rule), 8, 16);
        $pathName = $dir . '/img/' . date('Ym') . '/' . $imgName . '.' . $extension;

        try {
            OSS::publicUpload($bucket, $pathName, $filePath, ['ContentType' => $file->getMimeType()]);
          
            return OSS::getPublicObjectURL($bucket, $pathName) . $suffix;
        } catch (Exception $e) {
            return 1006;
        }
    }

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Dcat Admin 入门应用(五)文件上传之OSS自定义上传

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Golang 文件上传中如何使用自定义错误消息?

在 go 中处理文件上传时,可使用自定义错误类型创建自定义错误消息。步骤如下:创建自定义错误类型,包含错误消息文本。在文件上传代码中使用自定义错误类型返回错误消息。Go 中使用自定义错误消息处理文件上传在处理文件上传时,明确且有意义的错误
Golang 文件上传中如何使用自定义错误消息?
2024-05-13

JavaEE开发之SpringMVC中的自定义消息转换器与文件上传

本篇博客我们继续的来聊SpringMVC的东西,下方我们将会聊到js、css这些静态文件的加载配置,以及服务器推送的两种实现方式。当然我们在服务器推送时,会用到jQuery的东西,所以我们先聊一下如何加载静态资源文件,然后我们再聊如何实现服
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录