使用 Golang 的 net/http 和 Mux 接收文件上传
在 Web 开发领域,接收文件上传是一项常见任务。 Golang 的 net/http 包提供了一个方便的框架来处理此类请求,特别是与强大的 Mux 路由器结合使用时。
识别问题
您的代码似乎可以正确处理上传但无法检索实际文件内容。罪魁祸首在于UploadFile函数,特别是如何检索请求正文。
解决方案
要有效接收上传的文件,请按照以下步骤操作:
解析多部分表格:
r.ParseMultipartForm(5 * 1024 * 1024) // Sets a limit for the size of the form
访问文件:
file, header, err := r.FormFile("fileupload")
复制将文件内容保存到缓冲区:
var buf bytes.Buffer io.Copy(&buf, file)
以字符串形式检索文件内容:
contents := buf.String()
示例代码
这是 UploadFile 函数的修改版本:
func UploadFile(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(5 * 1024 * 1024) var buf bytes.Buffer file, header, err := r.FormFile("fileupload") if err != nil { panic(err) } defer file.Close() fmt.Printf("File name %s\n", header.Filename) io.Copy(&buf, file) fmt.Println(buf.String()) }
其他注意事项
以上是如何使用 net/http 和 Mux 在 Golang 中正确接收文件上传?的详细内容。更多信息请关注PHP中文网其他相关文章!