vue.js之如何使用VueJS将图像上传到Go服务器
sky-heaven
阅读:177
2025-06-02 22:19:02
评论:0
我正在尝试将图像从VueJS上传到Go服务器,但无法使其正常工作。
let form = new FormData();
if (this.styling.file !== undefined) {
form.append('logo', this.styling.file);
}
form.append('something1', this.something.one);
form.append('something2', this.something.two);
this.$http.post(process.env.VUE_APP_API_URL + '/store', form).then(() => {
// ...
})
然后,在Go中,我可以成功保存在表单数据中传递的所有详细信息。唯一不起作用的是我上传的图像。
当我这样做时:
form := request.MultipartForm
defer form.RemoveAll()
file, _, err := request.FormFile("logo")
if err != nil {
fmt.Println(err)
writer.WriteHeader(http.StatusBadRequest)
return
}
img, _, err := image.Decode(file)
if err != nil {
fmt.Println(err)
writer.WriteHeader(http.StatusBadRequest)
return
}
它显示了一个错误:图片:未知格式
我在网上尝试了多个教程,但是到目前为止,没有一个给我一种通过Go将上传的图片存储在服务器上的方法:
我还尝试了以下方法,导致出现错误“打开test.jpg:系统找不到文件”。
form := request.MultipartForm
defer form.RemoveAll()
in, header, err := request.FormFile("logo")
if err != nil {
fmt.Println(err)
writer.WriteHeader(http.StatusBadRequest)
return
}
defer in.Close()
out, err := os.OpenFile(header.Filename, os.O_WRONLY, 0644)
if err != nil {
fmt.Println(err)
writer.WriteHeader(http.StatusBadRequest)
return
}
defer out.Close()
io.Copy(out, in)
请您参考如下方法:
经过一番搜索和学习,我找到了解决方案,对于我来说,这很简单。
out, err := os.OpenFile(header.Filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
只需添加一个追加并创建。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



