用go gin server來做文件上傳服務(wù)
之前已經(jīng)go get安裝了gin, 現(xiàn)在來玩下用go gin server作圖片上傳服務(wù), 代碼目錄如下:
taoge:~/test_gin$ tree . |-- public |-- template | `-- select_file.html `-- test_gin_server.go 2 directories, 2 files taoge:~/test_gin$
test_gin_server.go內(nèi)容:
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的內(nèi)容為:
<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,服務(wù)端對應(yīng)的public目錄中有對應(yīng)的圖片。
不多說。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- goland 搭建 gin 框架的步驟詳解
- Go Web框架gin的入門教程
- Golang Gin框架實(shí)現(xiàn)文件下載功能的示例代碼
- golang gin框架獲取參數(shù)的操作
- golang gin 框架 異步同步 goroutine 并發(fā)操作
- Golang?Gin解析JSON請求數(shù)據(jù)避免出現(xiàn)EOF錯(cuò)誤
- 基于Go和Gin的環(huán)境配置方法
- golang中g(shù)in框架接入jwt使用token驗(yàn)證身份
- golang?gin框架實(shí)現(xiàn)大文件的流式上傳功能
- golang 網(wǎng)絡(luò)框架之gin的使用方法
- 加速開發(fā):使用Go語言和Gin框架構(gòu)建Web項(xiàng)目的利器
相關(guān)文章
Go代碼的組織和格式化規(guī)則實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了Go代碼的組織和格式化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Golang 使用http Client下載文件的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Golang 使用http Client下載文件的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Golang實(shí)現(xiàn)基于時(shí)間的一次性密碼TOTP
基于時(shí)間的一次性密碼 TOTP 是 OTP 的一種實(shí)現(xiàn)方式,這種方法的優(yōu)點(diǎn)是不依賴網(wǎng)絡(luò),因此即使在沒有網(wǎng)絡(luò)的情況下,用戶也可以生成密碼,下面我們就來看看如何使用golang實(shí)現(xiàn)一次性密碼TOTP吧2023-11-11

