解决 beego上传文件时 报http: no such file 错误

上传时文件上传失败:
关键报错的代码:

	//获得文件名
	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)
	}

两者的区别就在于:
解决 beego上传文件时 报http: no such file 错误_第1张图片

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

你可能感兴趣的:(异常,框架,go,go1.19)