axios如何提交post请求的表单 并且传的是图片格式?

发布于 2022-09-11 23:18:20 字数 860 浏览 24 评论 0

axios如何提交post请求的表达 并且传的是图片格式?

服务器接受一个以avatarname的post表单

我如下写:

this.axios({
                    url: this.baseUrl + '/uploadImg',
                    method: 'post',
                    data: {avatar: formdata},
                    // transformRequest: [function (data) {
                    //     let ret = ''
                    //     for (let it in data) {
                    //         ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
                    //     }
                    //     return ret
                    // }],
                })

服务器无法正确接受

如果加上

headers:{

    'Content-Type':'multipart/form-data'  

    }

服务器会报错

MULTIPART: BOUNDARY NOT FOUND MULTER

求大神赐教,谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

睫毛上残留的泪 2022-09-18 23:18:20

我解决了 要这样写

// 第一步.将图片上传到服务器.
                var formdata = new FormData();
                formdata.append('avatar', $file);
                this.axios({
                    url: this.baseUrl + '/uploadImg',
                    method: 'post',
                    data: formdata,
                    headers: {
                        'content-type': `multipart/form-data; boundary=${formdata._boundary}`, //这里手动增加boundary
                    },
                }).then((res) => {
                    // 第二步.将返回的url替换到文本原位置![...](0) -> ![...](url)
                    let url = this.baseUrl + '/downloadImg/' + res.data;
                    this.$refs.markdownEditor.$img2Url(pos, url);
                })
染柒℉ 2022-09-18 23:18:20

你的参数写错了,直接写formData,不要写对象


function uploadFile(data) {
    return $http({
        data,
        url: '/api/uploads',
        method: 'POST',
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    })
}

const file = input.files[0]
const formData = new FormData()
formData.append('quill-image', file)
const res = await uploadFile(formData)
撞了怀 2022-09-18 23:18:20

需要append进formData里,不然是formData是空的

吻风 2022-09-18 23:18:20

所有需要使用ajax上传的需求都是一句话:data传FormData对象,把文件append到这个对象

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文