七叶笔记 » golang编程 » Go语言Web编程,Request http server 上传文件

Go语言Web编程,Request http server 上传文件

上一节学习了POST请求,Form、PostForm、MultipartForm,关于POST还有2个功能,一个是上传文件,1个是JSON文件。

先学习下上传文件。

1. 文件上传

代码解析:

func FormUpload(w http.ResponseWriter, r *http.Request) {

//ParseMultipartForm将请求体解析为multipart/form-data。

//解析整个请求,1024是指其文件部分的maxMemory字节1024字节存储在内存,剩余的部分存储在临时文件。

_ = r.ParseMultipartForm(1024)

//获取文件信息,其中name是上传文件时所用的”name”名,[0]代表是第1个文件,tmp是FileHeader的结构体.

tmp := r.MultipartForm.File[“name”][0]

//获取文件头

log.Println(tmp.Header)

//获取文件大小

log.Println(tmp.Size)

//获取文件名

log.Println(tmp.Filename)

//打开后,返回File。

file, _ := tmp.Open()

//读取file文件,返回字节集

bytes, _ := ioutil.ReadAll(file)

//将读取的内容输出到页面

_, _ = w.Write(bytes)

}

总结一下上传步骤:

(1)调用ParseMultipartForm,解析请求

(2) 从MultipartForm.File获取文件信息

(3)使用ioutil.ReadAll将文件读入,转成字节集

2. 文件上传方法2

采用FormFile方法

FormFile和MultipartForm.File相似,但是不同的是,FormFile返回的是第一个文件。

执行结果

使用FormFile方法更加简便,并需要调用ParseMultipartForm进行解析,同时返回multipart.File、FileHeader和error。

因此如果一次只上传一个文件,用这个方法更贱简便。

相关文章