【发布时间】:2014-10-18 04:37:52
【问题描述】:
我在项目中使用 Angularjs 和 nodejs 并处理文件上传。我想以安全的方式将发布请求发送到 url 端点,因为我需要在请求中附加 accesstoken。所以我这样做的方式是,我添加了从 UI 中选择文件的指令,一旦获得文件,我就在控制器中使用 FormData() 将其附加
var fd = new FormData();
fd.append('file',myFile);
并将这个formdata对象发送到nodejs服务器,就像这里提到的http://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs
预计此请求将从那里发送到我的 nodejs 服务器 url,我将向外部 Web 服务发出另一个发布请求
$http.post('api/collections/upload',fd, {
transformRequest: angular.identity,
headers: {
'Content-type': undefined
}
});
因此它将在请求中附加正确的内容类型和边界。当我这样做时,我正在服务器端 nodejs 上获取文件
function(req,res){
console.log(req.files); //I am able to see the file content
}
它是在nodejs服务器端上传的。 现在我想使用 req.files 向不同的端点以及正确的 accessToken 和标头发出一个发布请求。尝试了很多东西,但无法使请求通过。不知道如何将 imagedata/req.files 与请求一起附加。我尝试了 request npm 模块https://www.npmjs.org/package/request中提到的这两件事
1)
request.post({
url: 'https://www.example.com/uploadImage',
headers: {
'Authorization': <accessToken>,
'Content-type': 'multipart/form-data'
},
body: req.files
});
不知道如何通过此请求附加二进制数据以及如何设置边界。当您想通过此请求发送上传的图像时是否需要边界?
2)
fs.createReadStream(req.files.file.path, {encoding: base64}).pipe(request.post({
url: 'https://www.example.com/uploadImage',
headers: {
'Content-type': 'multipart/form-data'
}
}));
有人可以就如何使用 request npm 模块发送此帖子请求提出一些想法吗?谢谢。
【问题讨论】:
标签: javascript node.js angularjs express