CRMEB知识付费系统二次开发 新增本地存储功能

本地存储功能实施计划

当前系统(CRMEB知识付费系统)所有文件上传(图片、视频、文件等)都强制使用阿里云 OSS 存储。如果未配置阿里云 AccessKey、Endpoint、Bucket 等参数,上传功能会直接报错无法使用。

现在需要增加本地存储模式,让用户可以选择将文件存储到服务器本地 public/uploads/ 目录,无需配置阿里云。

实现方案

新增一个系统配置项 upload_type(可选值:local / oss),创建一个与 AliyunOss 接口一致的 LocalStorage 类,然后修改所有上传入口根据配置选择对应存储驱动。已有的 UploadService 类提供了本地文件上传基础能力,可以复用。

修改文件清单

文件 操作 说明
extend/Api/LocalStorage.php 新建 本地存储驱动类
application/admin/controller/widget/Images.php 修改 admin 图片控制器
application/merchant/controller/widget/Images.php 修改 merchant 图片控制器
application/wap/controller/AuthApi.php 修改 wap 上传接口
application/wap/controller/PublicApi.php 修改 微信媒体上传
application/admin/controller/download/DataDownload.php 修改 后台资料下载
application/merchant/controller/download/DataDownload.php 修改 商户资料下载
public/system/module/widget/OssUpload.js 修改 前端上传组件

测试使用

1、配置测试: 不配置任何阿里云参数,将 upload_type 设为 local(本地存储),确认系统不报错

2、图片上传: 在后台通过图片管理器上传图片,验证文件保存到 public/uploads/ 目录,且 URL 正确

3、文件上传: 测试资料下载模块的文件上传(分片上传)

4、前端上传: 验证 OssUpload.js 在 local 模式下正常工作

5、文件删除: 测试删除图片/文件时本地文件也被正确删除

6、切换测试: 将 本地存储功能 切回 阿里云oss,确认原有阿里云上传功能不受影响

需要在数据库中执行的 SQL 语句,用来添加 upload_type 配置项

-- 在系统配置表中添加"上传方式"配置项(添加到阿里云配置分组,config_tab_id=19)

java 复制代码
INSERT INTO `eb_system_config` (`menu_name`, `type`, `input_type`, `config_tab_id`, `parameter`, `upload_type`, `required`, `width`, `high`, `value`, `info`, `desc`, `sort`, `status`) 
VALUES ('upload_type', 'radio', 'input', 19, 'oss=阿里云OSS\nlocal=本地存储', 0, '', 100, 0, '"oss"', '文件上传方式', '选择文件上传存储方式,选择"本地存储"则无需配置阿里云参数', 0, 1);

CRMEB知识付费系统 有需要二次开发的朋友可以联系我

相关推荐
csdndddsd2 年前
828华为云征文 | 使用华为云Flexus云服务器X安装搭建crmeb多门店商城教程
crmeb二次开发·华为云服务器运营方案·华为云flexus云服务器x·华为云安装搭建crmeb商城·crmeb多门店安装搭建教程·crmeb对接移领支付·crmeb小程序二次开发
linlinlove22 年前
crmeb多门店商城系统二次开发 增加车辆车牌搜索功能、车辆公里数
crmeb多门店开发·crmeb二次开发·开源商城crmeb开发·开源商城crmeb安装搭建教程·crmeb商城vue开发·crmeb小程序安装搭建·crmeb二次开发代码