在我的用例中,我试图将文件上传到 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在服务器端出现错误。有人可以帮我吗?
1 回答
森栏
TA贡献1810条经验 获得超5个赞
老实说,我不知道你是怎么得到错误的,因为你的 HTML 不是表单。但我认为你会出错,因为默认情况下表单是作为 GET 请求发送的,而multipart/form-data应该通过 POST 发送。这是应该工作的最小形式的例子。
<form action="/uploadfile/" enctype="multipart/form-data" method="post">
<input type="file" name="file" id="file" />
<input type="hidden"name="token" value="{{.}}" />
<input type="submit" value="upload" />
</form>
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消