Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menggunakan Golang untuk melaksanakan muat naik fail borang Borang?
Menggunakan borang Borang untuk melaksanakan muat naik fail dalam bahasa Go termasuk langkah berikut: Tetapkan atribut enctype="multipart/form-data" dalam HTML dan buat borang. Gunakan r.ParseMultipartForm() dalam Pergi untuk mengendalikan permintaan borang. Gunakan r.FormFile() untuk mendapatkan fail. Simpan fail ke lokasi sasaran dengan menciptanya dan menggunakan io.Copy().
Dalam aplikasi web, muat naik fail borang adalah senario biasa. Golang menyediakan pakej HTTP yang berkuasa yang boleh digunakan untuk melaksanakan fungsi ini dengan mudah dan cekap.
Mula-mula, buat borang dalam halaman HTML dan tetapkan atribut enctype="multipart/form-data"
, yang menunjukkan bahawa borang akan mengandungi data fail: enctype="multipart/form-data"
属性,这表明表单将包含文件数据:
<form action="/upload" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"> </form>
在 Go HTTP 处理程序中,使用 ParseMultipartForm
func uploadHandler(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(32 << 20) // 设置最大文件大小为 32MB if err != nil { http.Error(w, "无法解析表单数据", http.StatusBadRequest) return } // 获取文件 file, _, err := r.FormFile("file") if err != nil { http.Error(w, "无法获取上传文件", http.StatusInternalServerError) return } defer file.Close() // 保存文件 dst, err := os.Create("uploaded_file") if err != nil { http.Error(w, "无法创建目标文件", http.StatusInternalServerError) return } defer dst.Close() if _, err := io.Copy(dst, file); err != nil { http.Error(w, "无法写入文件", http.StatusInternalServerError) return } http.Redirect(w, r, "/success", http.StatusFound) }Mengendalikan muat naik fail
ParseMultipartForm
untuk mengendalikan permintaan borang: package main import ( "fmt" "net/http" "os" ) func uploadHandler(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(32 << 20) if err != nil { http.Error(w, "无法解析表单数据", http.StatusBadRequest) return } file, _, err := r.FormFile("file") if err != nil { http.Error(w, "无法获取上传文件", http.StatusInternalServerError) return } filename := "./uploaded_file_" + r.Form.Get("file") dst, err := os.Create(filename) if err != nil { http.Error(w, "无法创建目标文件", http.StatusInternalServerError) return } if _, err := io.Copy(dst, file); err != nil { http.Error(w, "无法写入文件", http.StatusInternalServerError) return } fmt.Fprintf(w, "文件 %s 上传成功!", filename) } func main() { http.HandleFunc("/upload", uploadHandler) http.ListenAndServe(":8080", nil) }Kes praktikalBerikut ialah contoh mudah untuk memuat naik fail menggunakan Go: 🎜rreee🎜Dengan cara ini , anda boleh menggunakan aplikasi Go Muat naik fail Borang mudah dilaksanakan dalam program. 🎜
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Golang untuk melaksanakan muat naik fail borang Borang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!