Mengendalikan muat naik fail berbilang bahagian di Golang melibatkan: membahagikan permintaan kepada berbilang bahagian menggunakan jenis kandungan berbilang bahagian/data bentuk. Gunakan fungsi FormFile dan ParseMultipartForm untuk menghuraikan permintaan. Dapatkan fail yang dimuat naik dan proseskannya. Kes praktikal: Menambah medan input fail pada borang HTML. Gunakan kod Go untuk mengimport rangka kerja Echo dan memuntahkan pustaka serta menentukan pengendali muat naik fail. Parsing borang permintaan dan dapatkan fail. Cetak butiran fail. Jalankan pelayan dan uji fungsi muat naik.
Mengendalikan muat naik fail berbilang bahagian di Golang
Pengenalan
Muat naik fail berbilang bahagian ialah teknik yang memecahkan fail kepada bahagian yang lebih kecil dan memindahkannya dalam permintaan HTTP. Ia biasanya digunakan untuk memuat naik fail besar atau memuat naik dalam ketulan. Artikel ini akan membimbing anda dalam mengendalikan muat naik fail berbilang bahagian di Golang dan menyediakan kes praktikal yang mudah.
Multipart/Form-Data
Muat naik fail berbilang bahagian menggunakan jenis kandungan multipart/form-data, yang membahagikan permintaan kepada beberapa bahagian. Setiap bahagian mempunyai tajuk, jenis kandungan dan medan borang yang menunjuk kepada kandungan fail sebenar.
Menghuraikan permintaan
Untuk menghuraikan permintaan berbilang bahagian di Golang, anda boleh menggunakan fungsi FormFile
dan ParseMultipartForm
: FormFile
和 ParseMultipartForm
函数:
import ( "fmt" "log" "github.com/labstack/echo/v4" ) func upload(c echo.Context) error { // Read the form data form, err := c.MultipartForm() if err != nil { return err } // Retrieve the uploaded file file, err := form.File("file") if err != nil { return err } // Do something with the file return nil }
实战案例
下面是一个简单的实战案例,展示如何在 Golang 中实现多部分文件上传:
HTML 表单:
<form action="/upload" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <button type="submit">Upload</button> </form>
Go 代码:
// Install echo/v4 and github.com/go-spew/spew // main.go package main import ( "fmt" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/go-spew/spew" "net/http" ) func main() { e := echo.New() e.Use(middleware.Logger()) e.POST("/upload", upload) e.Logger.Fatal(e.Start(":8080")) } func upload(c echo.Context) error { // Read the form data form, err := c.MultipartForm() if err != nil { return err } // Retrieve the uploaded file file, err := form.File("file") if err != nil { return err } // Print the file details spew.Dump(file) return c.JSON(http.StatusOK, map[string]interface{}{ "message": "File uploaded successfully", }) }
测试上传
访问 /upload
表单并选择一个文件进行上传。成功上传后,控制台将打印已上传文件的详细信息。
提示
FormFile
函数可以获取单个文件。ParseMultipartForm
函数可以获取多个文件和其他表单字段。multipart/form-data
rrreeeFormFile
untuk mendapatkan satu fail. 🎜ParseMultipartForm
untuk mendapatkan berbilang fail dan medan borang lain. 🎜multipart/form-data
juga boleh digunakan untuk jenis muat naik fail lain, seperti imej dan video. 🎜🎜Atas ialah kandungan terperinci Bagaimana untuk mengendalikan muat naik fail berbilang bahagian di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!