两种方式:
func uploadfile() {
server := http.Server{
Addr: "localhost:8080",
Handler: nil,
}
http.HandleFunc("/process", func(w http.ResponseWriter, r *http.Request) {
r.ParseMultipartForm(1024)
fileHeader := r.MultipartForm.File["upload"][0]
file, err := fileHeader.Open()
if err == nil {
data, err := ioutil.ReadAll(file)
if err == nil {
fmt.Fprintln(w, string(data))
}
}
})
server.ListenAndServe()
}
func uploadfile2() {
server := http.Server{
Addr: "localhost:8080",
Handler: nil,
}
http.HandleFunc("/process", func(w http.ResponseWriter, r *http.Request) {
// 当只上传一个文件,该方法简单
file, _, err := r.FormFile("upload")
if err == nil {
data, err := ioutil.ReadAll(file)
if err == nil {
fmt.Fprintln(w, string(data))
}
}
})
server.ListenAndServe()
}
mutipartform.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Form</title>
</head>
<body>
<form action="http://localhost:8080/process?first_name=xiao&last_name=ming" method="post" enctype="multipart/form-data">
<input type="text" name="first_name"/>
<input type="text" name="last_name"/>
<input type="file" name="upload">
<input type="submit"/>
</form>
</body>
</html>
.txt
哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎
页面返回:
哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎