为了账号安全,请及时绑定邮箱和手机立即绑定

golang上传文件错误运行时错误索引超出范围

golang上传文件错误运行时错误索引超出范围

Go
拉莫斯之舞 2021-08-16 18:25:20
我已经把一个 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 返回空字符串
要访问多个值,请直接使用映射。


查看完整回答
反对 回复 2021-08-16
  • 1 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信