• ginserver上传文件


    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不同,但大体上相似)
    又加了一个简陋的前端

  • 相关阅读:
    [LeetCode] Insert Interval
    java 可变參数
    谈谈单元測试之(二):測试工具 JUnit 3
    我的csdn博客搬家了
    leetcode 229: Majority Element II
    向MapReduce转换:生成用户向量
    《31天成为IT服务达人》最新文件夹
    SD卡读写之FileNotFoundException: /storage/emulated/0object.txt: open failed: ENOENT (No such file or dir
    当写烂代码的人离职之后....
    JavaSE Map的使用
  • 原文地址:https://www.cnblogs.com/luoyugongxi/p/16266553.html
Copyright © 2020-2023  润新知