猿问

将图像从 html 表单传递给 Go

我有一个包含以下代码的 html 页面。


<form action="/image" method="post"

enctype="multipart/form-data">

<label for="file">Filename:</label>

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

<input type="submit" name="submit" value="Submit">

</form>

然后我有一些 Go 代码来获取后端的文件。


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


   userInput := r.FormValue("file")

但是每当我尝试使用 go 脚本中的 userInput 时,它都不返回任何内容。我传递的变量错了吗?


编辑:我知道如何将文本/密码的内容上传到 golang。我无法使用代码将图像上传到 Go。


编辑 2:阅读 Go 指南并找到解决方案。见下文。


BIG阳
浏览 190回答 1
1回答

翻阅古今

首先您需要使用req.FormFilenot FormValue,然后您必须手动将图像保存到文件中。像这样的东西:func HandleUpload(w http.ResponseWriter, req *http.Request) {&nbsp; &nbsp; in, header, err := req.FormFile("file")&nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; //handle error&nbsp; &nbsp; }&nbsp; &nbsp; defer in.Close()&nbsp; &nbsp; //you probably want to make sure header.Filename is unique and&nbsp;&nbsp; &nbsp; // use filepath.Join to put it somewhere else.&nbsp; &nbsp; out, err := os.OpenFile(header.Filename, os.O_WRONLY, 0644)&nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; //handle error&nbsp; &nbsp; }&nbsp; &nbsp; defer out.Close()&nbsp; &nbsp; io.Copy(out, in)&nbsp; &nbsp; //do other stuff}
随时随地看视频慕课网APP

相关分类

Go
我要回答