首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Multipart form解析错误-multipart中的边界无效:无

Multipart form解析错误-multipart中的边界无效:无
EN

Stack Overflow用户
提问于 2016-02-17 21:15:06
回答 5查看 14.3K关注 0票数 10

我非常沮丧,找不到解决方案:

我正在使用angularjs和nodejs.I创建一个项目。我从节点js中的角度侧获取图像数据,并将此数据发送到进一步的a。我得到了错误

代码语言:javascript
复制
{
  "error": {
    "detail": "Multipart form parse error - Invalid boundary in multipart: None"
  }
}

以下是我在nodejs端的代码:

代码语言:javascript
复制
var request = require('request');
    console.log(req.files);
var data = {

        website:'www.gamail.xom',
        contact_number:'dsdsd',
        services_offered:'dsadasd',
        contact_name:'dasdas',
        provider_category:'exchange',
        email:'kk@gmail.com',
        image:req.files

    }
var api_url = global.common.base_url + 'vcard/1.0.0/visit_card/' + req.param('uuid') +'/';
    request({
        url: api_url,
        method: 'PUT',
        headers: {
            'Content-Type': 'multipart/form-data',
            'Authorization': 'Bearer '+req.cookies.apitoken
        },
        json: data

    }, function(error, response, body) {
        if(response.statusCode == 200 && !error){
            res.end(JSON.stringify(body));
        }else{          
            res.send(response.statusCode, { error: body });
        }
    });
}

在req.files中,我得到

代码语言:javascript
复制
{ image:
   [ { fieldName: 'image[0]',
       originalFilename: 'icon_dd_chart_grey.png',
       path: 'C:\\Users\\karakuma\\AppData\\Local\\Temp\\op74_gLSzPs-_49aT1GF0si
7.png',
       headers: [Object],
       size: 1474,
       name: 'icon_dd_chart_grey.png',
       type: 'image/png' } ] }
EN

回答 5

Stack Overflow用户

发布于 2017-10-02 17:39:01

尝试按如下方式定义内容类型。

代码语言:javascript
复制
content_type='multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'

我也面临着同样的问题,在python中它也适用于我。

票数 6
EN

Stack Overflow用户

发布于 2020-07-16 22:10:20

我在尝试上传文件时也遇到了这个问题。对我来说,问题出在FormData上,它的名字是Object而不是FormData instance

因此,我使用以下代码将我的对象转换为FormData:

代码语言:javascript
复制
const getFormData = object => Object.keys(object).reduce((formData, key) => {
            formData.append(key, object[key]);
            return formData;
        }, new FormData());

和刚刚执行的post请求,在我的例子中使用Vue资源:

代码语言:javascript
复制
return Vue.http.post(url,
        getFormData(formData),
        {
            headers: {
                'Content-Type': 'multipart/form-data'
            }
        });
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

票数 3
EN

Stack Overflow用户

发布于 2021-10-25 19:48:10

不需要在header中提到内容类型,fetch()会自动检测到它的内容类型。

代码语言:javascript
复制
let formData = new FormData()
formData.append("email", email);
formData.append("password", password);
formData.append("image", image);

const response = await fetch('http://localhost:8000/api/authentication/register/', {
                method: 'POST',
                headers: {'X-CSRFToken': csrftoken}, //django specific
                body: formData,
            });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35457777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档