用go gin server來做文件上傳服務
更新時間:2019年04月02日 14:06:56 作者:stpeace
今天小編就為大家分享一篇關于用go gin server來做文件上傳服務,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
之前已經go get安裝了gin, 現(xiàn)在來玩下用go gin server作圖片上傳服務, 代碼目錄如下:
taoge:~/test_gin$ tree . |-- public |-- template | `-- select_file.html `-- test_gin_server.go 2 directories, 2 files taoge:~/test_gin$
test_gin_server.go內容:
package main
import (
"fmt"
"io"
"log"
"net/http"
"os"
"github.com/gin-gonic/gin"
)
func upload(c *gin.Context) {
file, header, err := c.Request.FormFile("file")
if err != nil {
c.String(http.StatusBadRequest, fmt.Sprintf("file err : %s", err.Error()))
return
}
filename := header.Filename
out, err := os.Create("public/" + filename)
if err != nil {
log.Fatal(err)
}
defer out.Close()
_, err = io.Copy(out, file)
if err != nil {
log.Fatal(err)
}
filepath := "http://localhost:8080/file/" + filename
c.JSON(http.StatusOK, gin.H{"filepath": filepath})
}
func main() {
router := gin.Default()
router.LoadHTMLGlob("template/*")
router.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "select_file.html", gin.H{})
})
router.POST("/upload", upload)
router.StaticFS("/file", http.Dir("public"))
router.Run(":8080")
}
select_file.html的內容為:
<html>
<body>
<form action="http://localhost:8080/upload/" enctype="multipart/form-data" method="POST">
<input type="file" name="file" id="pic" accept="*" />
<button type="submit">提交</button>
</form>
</body>
</html>
go run test_gin_server.go跑起來, 在瀏覽器上執(zhí)行:http://localhost:8080/ ,然后就出現(xiàn)了圖片上傳的頁面,于是就可以上傳圖片了, 玩了一下, OK,服務端對應的public目錄中有對應的圖片。
不多說。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
您可能感興趣的文章:
- goland 搭建 gin 框架的步驟詳解
- Go Web框架gin的入門教程
- Golang Gin框架實現(xiàn)文件下載功能的示例代碼
- golang gin框架獲取參數(shù)的操作
- golang gin 框架 異步同步 goroutine 并發(fā)操作
- Golang?Gin解析JSON請求數(shù)據(jù)避免出現(xiàn)EOF錯誤
- 基于Go和Gin的環(huán)境配置方法
- golang中gin框架接入jwt使用token驗證身份
- golang?gin框架實現(xiàn)大文件的流式上傳功能
- golang 網(wǎng)絡框架之gin的使用方法
- 加速開發(fā):使用Go語言和Gin框架構建Web項目的利器

