Gin應用程式上傳單一檔案的方式如下。
範例環境:
- Go 1.16
- Gin 1.7.2
例如下面是提交檔案的表單網頁demo.html
,提交位址為http://localhost:8080/upload
。
demo.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="http://localhost:8080/upload"
method="POST"
enctype="multipart/form-data">
upload file:<input name="file" type="file"><br>
<input type="submit">
</form>
</body>
</html>
Gin在設定API路徑時使用gin.Context
的FormFile(name string)
取得表單上傳檔案。
例如下面的APIPOST | /upload
接收表單上傳檔案,上傳檔案欄位名稱為file
,然後將檔案存在所在目錄下的tmp
資料夾(若資料夾不存在不會自動建立及存檔)。
main.go
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.POST("/upload", func(c *gin.Context) {
file, _ := c.FormFile("file") // get file from form input name 'file'
c.SaveUploadedFile(file, "tmp/"+file.Filename) // save file to tmp folder in current directory
c.String(http.StatusOK, "file: %s", file.Filename)
})
router.Run()
}
沒有留言:
張貼留言