- 新增main9函数自定义重定向逻辑并打印请求链 - 新增main10函数实现multipart表单数据发送- 添加server_forms.go文件处理multipart表单解析 - 添加server_redirects.go文件处理重定向路由 - 引入bytes和mime/multipart包支持表单数据构造 - 在main函数中调用新增的三个测试函数
30 lines
666 B
Go
30 lines
666 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
)
|
|
|
|
func init() {
|
|
http.HandleFunc("/form", func(writer http.ResponseWriter, request *http.Request) {
|
|
err := request.ParseMultipartForm(10 * 60 * 1000)
|
|
if err != nil {
|
|
http.Error(writer, err.Error(), http.StatusInternalServerError)
|
|
return
|
|
}
|
|
for key, values := range request.MultipartForm.Value {
|
|
Printfln("Field: %v : %v", key, values)
|
|
}
|
|
for name, files := range request.MultipartForm.File {
|
|
for _, file := range files {
|
|
fmt.Fprintf(writer, "File %v : %v \n", name, file.Filename)
|
|
if f, err := file.Open(); err == nil {
|
|
defer f.Close()
|
|
io.Copy(writer, f)
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|