首页 > 解决方案 > 错误多部分:NextPart:http:关闭正文上的无效读取

问题描述

当我从带有golang后端的nuxt js上传时仍然错误

multipart: NextPart: http: invalid Read on closed Body 这是我的代码:

func (r *Request) UploadFile(ctx *kaos.Context, payload string) (string, error) {
    res := ctx.Data().Get("http-request", nil).(*http.Request)
    if res.Method != "POST" {
        return "", errors.New("must post")
    }

    if err := res.ParseMultipartForm(700); err != nil {
        return "", err
    }
    alias := res.FormValue("alias")

    uploadedFile, handler, err := res.FormFile("file")
    if err != nil {
        return "", err
    }
    defer uploadedFile.Close()

    dir, err := os.Getwd()
    if err != nil {
        return "", err
    }
    filename := handler.Filename
    if alias != "" {
        filename = fmt.Sprintf("%s%s", alias, filepath.Ext(handler.Filename))
    }

    fileLocation := filepath.Join(dir, "file", "upload", filename)
    targetFile, err := os.OpenFile(fileLocation, os.O_WRONLY|os.O_CREATE, 0666)
    if err != nil {
        return "", err
    }
    defer targetFile.Close()

    if _, err := io.Copy(targetFile, uploadedFile); err != nil {
        return "", err
    }
    return "", nil
}

这是vue html代码

 <template v-slot:additional_input><input type="file" accept="image/x-png" @change="onFileChange($event)" id="file-input"></template>

这是 nuxt js 代码:

 onFileChange(e) {
        var files = e.target.files[0]
        this.files = files
        var formData = new FormData();
         formData.append("file", this.files, this.files.name);
         console.log("oooo",this.files[0])
                   
                    this.$axios.post('/api/request/uploadfile',formData, {
                        headers: {
                        'Content-Type': 'multipart/form-data'
                        }
                    })
        
    },

这来自返回 console.log 帖子 在此处输入图像描述

标签: vue.jsgonuxt.js

解决方案


推荐阅读