1. 程式人生 > 其它 >gin-server上傳檔案

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