我在angularjs和nodejs中开发app。我想使用angular和node上传图像。图像是serten dusing multipart / form-data。当我发送数据后请求看起来像:
{name="customer.pen.13", email="temp@temp.com", website="http://www.tels-tra.com,image:FileList { 0=File, length=1, item=item()}}
我想在nodejs中获得相同的格式。但是我得到了节点js:
{name="customer.pen.13", email="temp@temp.com", website="http://www.tels-tra.com}
请求中缺少图片。
这是我的代码:
exports.updateExchangeSetup = function(req, res, next) {
var request = require('request');
console.log(req);
console.log(req.body);
}
var headers = {
'headers': {
'User-Agent': 'Super Agent/0.0.1',
'Authorization': 'test',
'Access-Control-Allow-Methods': 'POST, GET, PUT, DELETE, OPTIONS',
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept,Authorization",
'Content-Type': 'application/json'
}
}
答案 0 :(得分:2)
根据您的代码片段的简短描述,我假设您在服务器端使用 expressJS ,请检查您在快递方面处理的内容类型。我认为它的应用程序/ JSON,它使你的应用程序禁用,以了解多部分表单数据。但是我需要更多关于nodeJs方面的细节来更好地回答。
答案 1 :(得分:0)
根据你的片段,一切看起来都不错。您是否将图像数据放在URL上?
"http://www.tels-tra.com,image:FileList { 0=File, length=1, item=item()}}"
如果这是一个字符串,那么它不应该被调节。
您可以尝试使用以下示例上传图片并发送其他参数,而不是您的代码段。也许这不是您正在寻找的确切解决方案,但如果您使用额外参数处理文件上传,它可能会让您知道。
在角度使用ngFileUpload
上传文件
Upload.upload({
url: "/api/enpoint/resources",
data: {file: filePath, 'name': "customer.pen.13", 'email'="temp@temp.com"},
headers: {/* your header object here */}
}).then(function (res) {
// do something
});
使用connect-multiparty
中间件拦截文件
var multipartyMiddleware = require('connect-multiparty')();
router.post('/api/enpoint/resources',multipartyMiddleware, ctrl.updateExchangeSetup);
exports.updateExchangeSetup = function(req, res, next) {
// files will be at: req.files
var imageFile = req.files.file;
var email = req.body.email
}