用go gin server來(lái)做文件上傳服務(wù)
之前已經(jīng)go get安裝了gin, 現(xiàn)在來(lái)玩下用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跑起來(lái), 在瀏覽器上執(zhí)行:http://localhost:8080/ ,然后就出現(xiàn)了圖片上傳的頁(yè)面,于是就可以上傳圖片了, 玩了一下, OK,服務(wù)端對(duì)應(yīng)的public目錄中有對(duì)應(yīng)的圖片。
不多說(shuō)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- goland 搭建 gin 框架的步驟詳解
- Go Web框架gin的入門(mén)教程
- Golang Gin框架實(shí)現(xiàn)文件下載功能的示例代碼
- golang gin框架獲取參數(shù)的操作
- golang gin 框架 異步同步 goroutine 并發(fā)操作
- Golang?Gin解析JSON請(qǐng)求數(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的使用方法
- 加速開(kāi)發(fā):使用Go語(yǔ)言和Gin框架構(gòu)建Web項(xiàng)目的利器
相關(guān)文章
Goland激活碼破解永久版及安裝詳細(xì)教程(親測(cè)可以)
這篇文章主要介紹了Goland激活碼破解永久版及安裝詳細(xì)教程(親測(cè)可以),本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
go帶緩沖chan實(shí)現(xiàn)消息隊(duì)列功能
本文主要介紹了go帶緩沖chan實(shí)現(xiàn)消息隊(duì)列功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Golang中String,rune和byte的相互轉(zhuǎn)換
Go語(yǔ)言中,string就是只讀的采用utf8編碼的字節(jié)切片,rune是int32的別名,代表字符的Unicode編碼,這篇文章主要介紹了Golang中String,rune和byte的相互轉(zhuǎn)換,感興趣的小伙伴可以了解一下2023-10-10
golang Iris運(yùn)行多個(gè)應(yīng)用的實(shí)現(xiàn)
本文主要介紹了golang Iris運(yùn)行多個(gè)應(yīng)用的實(shí)現(xiàn),在Iris里面,提供了一種方式可以讓我們同時(shí)運(yùn)行多個(gè)應(yīng)用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Go語(yǔ)言學(xué)習(xí)之映射(map)的用法詳解
Map是一種無(wú)序的鍵值對(duì)的集合。這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言中映射的用法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Go語(yǔ)言有一定的幫助,需要的可以參考一下2022-04-04

