gin-server上传文件

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

演示

参考

我的gitee地址

其实参考了很多比如gin-vue-admin和ZERO这个博主的项目ZERO的gitee仓库(gorm用的package不同,但大体上相似)
又加了一个简陋的前端

posted @ 2022-05-13 14:17  ouluy  阅读(72)  评论(0编辑  收藏  举报