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) 
只需添加一个追加并创建。


标签:VUE
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号