gin-server上傳檔案
阿新 • • 發佈:2022-05-13
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不同,但大體上相似)
又加了一個簡陋的前端