golang实现图片上传和下载
生活随笔
收集整理的這篇文章主要介紹了
golang实现图片上传和下载
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ?golang實(shí)現(xiàn)圖片上傳和下載,測試過可行。filename傳對(duì)應(yīng)圖片的名字,圖片內(nèi)容傳二進(jìn)制,其鍵為uploadfile。
package mainimport ("fmt""github.com/gin-gonic/gin""net/http"//"os"//"strconv" )func cors() gin.HandlerFunc {return func(c *gin.Context) {method := c.Request.Method//fmt.Println(method)c.Header("Access-Control-Allow-Origin", "*")//c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token, Authorization, Token")c.Header("Access-Control-Allow-Headers", "*")c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, PATCH, DELETE")c.Header("Access-Control-Expose-Headers", "Content-Length, X_Tk, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")c.Header("Access-Control-Allow-Credentials", "true")// 放行所有OPTIONS方法,因?yàn)橛械哪0迨且?qǐng)求兩次的if method == "OPTIONS" {c.AbortWithStatus(http.StatusNoContent)}// 處理請(qǐng)求c.Next()} }func main() {gin.SetMode(gin.DebugMode)router := gin.Default()router.Use(cors())router.POST("/uploadHandler",UploadHandler)router.GET("/fileDownload", FileDownload)router.Run(":10086") }//單張圖片上傳 func UploadHandler(c *gin.Context) {file, _ := c.FormFile("uploadfile")name := c.PostForm("filename")if len([]byte(name)) == 0{c.JSON(400,gin.H{"code": 400, "desc": "not have filename"})}if file !=nil {if err := c.SaveUploadedFile(file, "./"+name); err != nil {c.JSON(500,gin.H{"code": 500, "desc": "save file error"})return}}else{c.JSON(400,gin.H{"code": 400, "desc": "not have uploadfile"})}c.JSON(200,gin.H{"code": 200, "desc": "upload success"}) }func FileDownload(c *gin.Context) {filename, err := c.GetQuery("filename")if !err {c.String(400, "Success")}path := "./"path += filenamefmt.Println(path)c.File(path) }?
總結(jié)
以上是生活随笔為你收集整理的golang实现图片上传和下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 穷举法--百钱买百鸡
- 下一篇: golang string切片解析jso