server(file_upload_download)
简单的文件上传,查看和删除,包含数据库增查删改功能,且有日志功能
写了一个简单的前端页面
使用技术
- Gin
- Gorm
- Mysql
- ...
项目结构目录
│ config.yaml // 配置文件
│ go.mod // 包依赖配置
│ main.go // 程序入口
├─api
│ ├─ v1 // api 方法
│ │ file_upload_download_method.go //方法函数
│ └─ enter.go // 创建方法结构体
│
├─config // 配置文件结构体
│ config.go
│
├─core
│ viper.go // 配置文件读取
│ server.go // 启动HTTP server服务
│ zap.go //配置日志库
│
├─global //全局
│ global.go // 全局共享对象
│ model.go //全局GVA_MODEL共享对象
│
├─initialize //初始化
│ │ db_table.go // 注册数据库表
│ │ mysql.go // 初始化mysql连接池
│ │ router.go // 初始化总路由
│ └─ internal
│ gorm.go //Config gorm 自定义配置
│ logger.go // 日志格式配置
│
├─middleware //中间件
│ cors.go // 跨域处理配置
│
├─model //模型
│ │
│ ├─ common
│ │ ├─request
│ │ │ common.go // 公共请求参数
│ │ │ //(postman格式)
│ │ └─ response
│ │ common.go //GetList列表结构体模型
│ │ response.go // 公共json表达式
│ │
│ ├─ response
│ │ file_upload_download.go //json表达结果映射结构体模型
│ │
│ └─ file_upload_download_model.go //数据库映射结构体模型
│
├─router //路由
│ sys_user.go // 用户业务路由
│
├─service // 业务处理
│ file_upload_download_sqlmethod.go // 用户业务处理层
│ enter.go //创建业务处理结构体
│
└─utils //工具
md5.go // 工具类
upload // 各类oss读取文件工具
directory.go //目录是否存在和批量创建文件
rotatelogs.go //日志自动 保存,清理
postman使用
所有前提都是在localhost:8888
UploadFile
[post]localhost:8888/fileUploadAndDownload/upload -> Body -> form-data ->KEY:file VALUE:"所传文件"
GetFileList
[post]localhost:8888/fileUploadAndDownload/getFileList -> Body -> {"page":页码,"pageSize":每页大小}
DeleteFile
[post]localhost:8888 /fileUploadAndDownload/deleteFile -> Body -> raw(JSON)->{"id":num(一定要是存在的)}
后面添加的xxxxForm都是在body form-data 直接输入KEY和VUALE即可
启动server
配置文件config.yaml
配置环境
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go mod tidy
go mod download
启动server
go run main.go
演示
参考
其实参考了很多比如gin-vue-admin和ZERO这个博主的项目ZERO的gitee仓库(gorm用的package不同,但大体上相似)
又加了一个简陋的前端