我的资源有以下字段:
description, picture
是否可以将该资源作为multipart / form发送到URL,如果是,如何?
我尝试过:
app.factory('resource_name', ['$resource', function($resource) {
return $resource('<url> ',
{
<params_for_url>
},
save: {
method: "POST",
headers: {
"Content-Type": "multipart/form-data;"
}
},
但这不会作为表单数据到达服务器。它就像JSON一样只设置了标题:
{
description: "gtrdgf",
picture: {
lastModifiedDate:2013-11-26T20:42:13.000Z,
name: "suggested_pokes.png"
size: 32995
type: "image/png"
webkitRelativePath: ""
}
之前有没有人满足这个要求?如果可以的话......
谢谢!
答案 0 :(得分:11)
我找到了解决方案。您必须使用FormData提交它。你可以用它作为拦截器。我这样使用它(这是我的ngResource的保存方法)
save: {
method: 'POST',
transformRequest: formDataObject,
headers: {'Content-Type':undefined, enctype:'multipart/form-data'}
},
这里是变压器:
function formDataObject (data) {
var fd = new FormData();
angular.forEach(data, function(value, key) {
fd.append(key, value);
});
return fd;
}