文件上传主要是为了统一整个系统的上传文件的管理,还有就是能够让开发文件上传相关的功能时可以直接引用组件就可以使用,从而提升开发的效率。

一、特点

  1. 组件引用,方便高效。
  2. 文件统一管理,节省空间
  3. 多个上传驱动封装,开发灵活、扩展性强。

二、使用

2.1 使用全局标签引用组件

  • hcmstag:include 是Hcms自定义的一个标签,可以使用这个标签实现跨模块引用。

    1. {hcmstag:include file="admin@/components/upload/select-image"}

    2.2 使用引用的vue组件

    因为全局代码已经引入,所有这里直接就可以使用vue组件。

    <select-image :show="show_select_image" @confirm="selectImageConfirm" @close="show_select_image=false"></select-image>
    
  • show 组件显示参数bool

  • confirm 是选择文件后的回调方法,返回的格式是一个数组files,下面单个文件主要参数
  • public_read 是否公共读,默认是false,如果开启腾讯云COS私有读,可以通过设置成true让上传的文件设置成公共读权限【富文本编辑器上传的图片默认是true】 | 字段 | 类型 | 说明 | | —- | —- | —- | | file_id | int | 文件id | | file_name | string | 文件名称 | | file_path | string | 文件实际存储路径 | | file_thumb | string | 文件缩略图 | | file_url | string | 文件访问路径 |

三、配置

驱动:目前系统支持使用本地存储、腾讯云。注意:如果镜像存储,需要设置文件访问域名。

  • 上传目录:文件在本地存储的路径。建议是放在upload上
  • 文件访问域名,本地默认是 / 如果是镜像存储,就填写对象存储的外网访问链接。
  • 上传格式:规定所有上传文件的格式
  • 上传文件大小:系统允许上传的文件大小,但是要注意跟php.ini结合,不能大于php.ini最大上传限制和POST最大报文限制。

    四、腾讯云COS

    安装composer

    composer require qcloud/cos-sdk-v5 ^2.5

    配置

    配置腾讯云COS相关开发资料。secretId、secretKey、存储桶区域、存储桶名称。配置过程中注意腾讯相关权限分配问题。
    image.png

    私有读

    私有的是一个增加上传文件安全访问措施,类似腾讯云COS对象存储产品都会提供这项功能。开通私有读之后,获取文件访问地址都是临时(默认10分钟)地址。避免图片链接被恶意使用后浪费流量,造成不必要的损失。

    注意

    如果是私有读开启,那么在做数据库存储的时候要存储文件id,而不能直接存文件访问地址,因为访问地址是临时的。