使用原生的http.Request进行获取
func main() {
http.HandleFunc("/hello", helloHandler)
http.ListenAndServe(":8000", nil)
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
r.ParseMultipartForm(32 << 20) // 32MB max size
files := r.MultipartForm.File["files"]
var fileByte [][]byte
for _, fileHeader := range files {
file, err := fileHeader.Open()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer file.Close()
// 读取文件内容并保存
data, err := ioutil.ReadAll(file)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
fileByte = append(fileByte, data)
}
for i, d := range fileByte {
err := ioutil.WriteFile(fmt.Sprintf("file%d.jpg", i), d, 0644)
if err != nil {
log.Fatal(err)
}
}
w.Write([]byte("ok"))
}