Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Penyerahan Borang Berbilang Bahagian dalam Go menggunakan `mime/multipart` dan `http`?

Bagaimana Mengendalikan Penyerahan Borang Berbilang Bahagian dalam Go menggunakan `mime/multipart` dan `http`?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 09:41:14802semak imbas

How to Handle Multipart Form Submissions in Go using `mime/multipart` and `http`?

Penyerahan Borang Pelbagai Bahagian menggunakan Go Packagesmime/multipart dan http

Apabila membuat borang multipart, anda boleh menggunakan pakej mime/multipart dan http dalam Go. Contoh borang HTML disediakan di sini.

<form action="/multipart" enctype="multipart/form-data" method="POST">
  <label for="file">Please select a File </label>
  <input>

Dalam Go, pendekatan berikut boleh digunakan:

var buffer bytes.Buffer
w := multipart.NewWriter(&buffer)
// Write fields and files
w.CreateFormField("input1")
w.WriteField("input1", "value1")
w.CreateFormFile("file", "filename.dat")
// Create a reader to read the file
resp, err := http.Post(url, w.FormDataContentType(), &buffer)

Untuk mendapatkan semula fail, Pembaca diperlukan. Begini caranya:

// Upload file to google code
func Upload(tarball string) (err os.Error) {
    // ... (code omitted)
    // Create file field
    fw, err := w.CreateFormFile("upload", tarball)
    // ... (code omitted)
    // Write file field from file to upload
    _, err = io.Copy(fw, fd)
    // ... (code omitted)
    return err
}

Penyelesaian ini menyediakan pendekatan menyeluruh untuk menyerahkan borang berbilang bahagian dalam Go menggunakan pakej yang ditentukan.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Penyerahan Borang Berbilang Bahagian dalam Go menggunakan `mime/multipart` dan `http`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn