我已经把一个 golang func 放在一起,它接收一个上传的文件并将其保存到文件夹中。就在os.Create()我收到以下错误之前:http: panic serving [::1]:64373: runtime error: index out of range我的 golang 函数是:func webUploadHandler(w http.ResponseWriter, r *http.Request) { file, header, err := r.FormFile("file") // the FormFile function takes in the POST input id file if err != nil { fmt.Fprintln(w, err) return } defer file.Close() // My error comes here messageId := r.URL.Query()["id"][0] out, err := os.Create("./upload/" + messageId + ".mp3") if err != nil { fmt.Fprintf(w, "Unable to create the file for writing. Check your write access privilege") return } defer out.Close() // write the content from POST to the file _, err = io.Copy(out, file) if err != nil { fmt.Fprintln(w, err) } fmt.Fprintf(w,"File uploaded successfully : ") fmt.Fprintf(w, header.Filename)}有任何想法吗?非常感谢
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您至少应该检查是否 r.URL.Query()["id"]
真的有一个元素。
如果len(r.URL.Query()["id"])
,您可以考虑不访问索引 0。
更容易,Ainar-G在评论中建议使用Get() 方法
Get 获取与给定键关联的第一个值。
如果没有与键关联的值,则 Get 返回空字符串。
要访问多个值,请直接使用映射。
- 1 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消