【发布时间】:2017-02-24 15:00:56
【问题描述】:
我的 HTTP 处理程序有问题。 当我启动 HTTP 服务器时,第一个请求此处理程序接收上传的文件引发错误:
multipart: Part Read: read tcp 127.0.0.1:9002->127.0.0.1:37704: read: bad file descriptor
下一个请求完美运行。
这里是 Handler 的开头:
func FileNewHandler(w http.ResponseWriter, r *http.Request) {
if err := r.ParseMultipartForm(32 << 20); err!= nil {
log.Fatal(err) // Here is where the error is logged
return
}
...
仅供参考,我有 Nginx 作为代理,虽然我不认为问题来自这里。
有人知道错误的来源吗?
感谢您的帮助 ;-)
【问题讨论】:
-
你能提供一个代码示例来重现吗?
-
我正在尝试提供一个示例来重现该错误,但我不能...该示例在我的完整应用程序中的处理程序失败的情况下正常工作。我不明白为什么。
-
我开始寻找答案了。我正在使用 goagain (github.com/rcrowley/goagain) 在构建后重新启动服务器。如果我停止并启动服务器,我没有任何问题,但是如果我使用 gogain 重新启动,则重新启动后的第一次上传失败。我会继续深入搜索,如果找到此问题的根源,我会发表评论。
标签: go file-upload httphandler