直接上代码: func upload(w http.ResponseWriter, r *http.Request) {
fmt.Println("method:", r.Method) //获取请求的方法
if r.Method == "GET" {
crutime := time.Now().Unix()
h := md5.New()
io.WriteString(h, strconv.FormatInt(crutime, 10))
token := fmt.Sprintf("%x", h.Sum(nil))
t, _ := template.ParseFiles("upload.gtpl")
t.Execute(w, token)
} else {
r.ParseMultipartForm(32 << 20)
file, handler, err := r.FormFile("uploadfile")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
fmt.Fprintf(w, "%v", handler.Header)
f, err := os.OpenFile("./test/"+handler.Filename, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
io.Copy(f, file)
}
}
func main() {
http.HandleFunc("/", upload)
err := http.ListenAndServe(":9000", nil)
if err != nil {
fmt.Println("error:", err)
}
}
upload.gtpl文件如下 <html> <head> <title>上传文件</title> </head> <form enctype="multipart/form-data" action="http://127.0.0.1:9000/upload" method="post"> <input type="file" name="uploadfile" /> <input type="hidden" name="toke" value="{{.}}"/> <input type="submit" value="upload"> </form> </body> </html>
时间: 2024-10-02 03:00:49