上传时文件上传失败:
关键报错的代码:
//获得文件名
filename := header.Filename
//上传文件
//注意,这里SaveToFile参数要跟传入的文件名的key一致,否则就会报http: no such file
err = f.SaveToFile(filename, "./static/file/"+filename)
if err != nil {
logs.Error(err)
}
上传文件时获取到文件名,但是这样用SaveToFile的方式是错误的:
正确的方式是:
//获得上传文件的信息
file, header, err := f.GetFile("filename")
//上传文件
//注意,这里SaveToFile参数要跟传入的文件名的key一致,否则就会报http: no such file
err = f.SaveToFile("filename", "./static/file/"+filename)
if err != nil {
logs.Error(err)
}
两者的区别就在于:
SaveToFile接受的是form表单里文件所在的 key ,看一下源码就知道了:
追溯源码:
// FormFile returns the first file for the provided form key. //这里表明,从key获取文件
// FormFile calls ParseMultipartForm and ParseForm if necessary.
func (r *Request) FormFile(key st