Memuat naik dan memuat turun fail
Gin ialah rangka kerja pembangunan web yang dibangunkan menggunakan bahasa Go Ia cekap, mudah digunakan dan fleksibel. Untuk memuat naik dan memuat turun fail, fungsi ini boleh dilaksanakan dengan mudah menggunakan rangka kerja Gin. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Gin untuk memuat naik dan memuat turun fail.
1. Muat naik fail
Dalam rangka kerja Gin, muat naik fail memerlukan penggunaan borang MultipartForm. Mula-mula, anda perlu mentakrifkan fungsi penghalaan dan pemprosesan:
penghala.POST("/upload", uploadHandler)
func uploadHandler(c *gin.Context) {
file, err := c.FormFile("file") if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "error": err.Error(), }) return } filename := filepath.Base(file.Filename) if err := c.SaveUploadedFile(file, filename); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "error": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "message": fmt.Sprintf("'%s' uploaded!", filename), })
}
Dalam fungsi pemprosesan fail yang dimuat naik, mula-mula dapatkan fail yang dimuat naik melalui fungsi c.FormFile() dan lakukan pengendalian ralat. Kemudian dapatkan nama fail dan gunakan fungsi c.SaveUploadedFile() untuk menyimpan fail ke direktori yang ditentukan. Akhirnya, hasil muat naik dikembalikan melalui JSON.
Mulakan perkhidmatan Gin dan lawati http://localhost:8080/upload Anda akan melihat antara muka berikut:
https://user-images.githubusercontent.com/36320997/129822689. - f45e849c-7cae-4ad9-9107-aae98f76d34c.png
Selepas fail berjaya dimuat naik, anda akan melihat hasil pemulangan JSON berikut:
{
rreee🎜>
2. Muat turun failMuat turun fail memerlukan perkhidmatan fail statik rangka kerja Gin. Ini boleh dicapai melalui operasi berikut: 1 Cipta mana-mana direktori dalam aplikasi untuk menyimpan fail yang dimuat turun. 2. Dalam penghalaan Gin, tentukan akses kepada fail dalam direktori ini, seperti berikut: router.StaticFS("/download", http.Dir("tmp"))3. Dalam fungsi pemprosesan penghalaan, tentukan antara muka muat turun berdasarkan nama fail, seperti berikut: router.GET("/download/:filename", downloadHandler) func downloadHandler(c *gin.Context) {
"message": "'test.txt' uploaded!"
Atas ialah kandungan terperinci Cara golang gin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!