golang文件上传失败

在我的用例中,我试图将文件上传到 golang 中的服务器。我有以下html代码,


<div class="form-input upload-file" enctype="multipart/form-data" >

    <input type="file"name="file" id="file" />

    <input type="hidden"name="token" value="{{.}}" />

    <a href="/uploadfile/" data-toggle="tooltip" title="upload">

        <input type="button upload-video" class="btn btn-primary btn-filled btn-xs" value="upload" />

    </a>

</div>

而服务器端,


func uploadHandler(w http.ResponseWriter, r *http.Request) {

    // the FormFile function takes in the POST input id file

    file, header, err := r.FormFile("file")

    if err != nil {

        fmt.Fprintln(w, err)

        return

    }

    defer file.Close()


    out, err := os.Create("/tmp/uploadedfile")

    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)

}

当我尝试上传文件时,request Content-Type isn't multipart/form-data在服务器端出现错误。


有人可以帮我吗?


GCT1015
浏览 123回答 1
1回答

森栏

老实说,我不知道你是怎么得到错误的,因为你的 HTML 不是表单。但我认为你会出错,因为默认情况下表单是作为 GET 请求发送的,而multipart/form-data应该通过 POST 发送。这是应该工作的最小形式的例子。<form action="/uploadfile/" enctype="multipart/form-data" method="post">&nbsp; &nbsp; <input type="file" name="file" id="file" />&nbsp; &nbsp; <input type="hidden"name="token" value="{{.}}" />&nbsp; &nbsp; <input type="submit" value="upload" /></form>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go