Bagaimanakah cara saya MENYATAKAN Fail dan Data Borang menggunakan `berbilang bahagian/data-bentuk` Go?

DDD
Lepaskan: 2024-11-25 09:48:38
asal
577 orang telah melayarinya

How do I POST Files and Form Data Using Go's `multipart/form-data`?

POST Fail dalam Permintaan Multipart/Borang-Data

Permintaan berbilang bahagian kerap digunakan untuk muat naik fail, di mana bersama-sama dengan fail, data borang tambahan perlu diserahkan. Mari lihat bagaimana kita boleh menangani perkara ini menggunakan pakej mime/multipart dan http Go.

Pertimbangkan borang HTML berikut:

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

Dalam Go, kami boleh menghantar permintaan berbilang bahagian ini seperti berikut:

import (
  "bytes"
  "io"
  "mime/multipart"
  "net/http"
)

var buffer bytes.Buffer
w := multipart.NewWriter(&buffer)

// Write form fields
w.CreateFormField("input1")
w.WriteField("input1", "value1")

// Prepare to write a file
fd, err := os.Open("filename.dat")
if err != nil {
  return err
}

// Create a form field for the file
fw, err := w.CreateFormFile("file", fd.Name())
if err != nil {
  return err
}

// Copy file contents into form field
if _, err := io.Copy(fw, fd); err != nil {
  return err
}

// Close writer
w.Close()

// Prepare request
resp, err := http.Post(url, w.FormDataContentType(), &buffer)
if err != nil {
  return err
}
Salin selepas log masuk

Kunci untuk menghantar fail dalam permintaan berbilang bahagian terletak pada penggunaan CreateFormFile pada *multipart.Writer untuk mencipta medan borang khusus untuk fail. Setelah dibuat, kita boleh menggunakan io.Copy untuk menulis kandungan fail ke dalam medan borang ini.

Atas ialah kandungan terperinci Bagaimanakah cara saya MENYATAKAN Fail dan Data Borang menggunakan `berbilang bahagian/data-bentuk` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan