Rest Angularjs ngResource需要将文件作为字段之一
我拥有具有以下字段的资源:Rest Angularjs ngResource需要将文件作为字段之一,rest,angularjs,post,file-upload,ngresource,Rest,Angularjs,Post,File Upload,Ngresource,我拥有具有以下字段的资源: description, picture 是否可以将该资源以多部分/形式发送到URL,如果可以,如何发送 我试着把: app.factory('resource_name', ['$resource', function($resource) { return $resource('<url> ', { <params_for_url> }, save: { me
description, picture
是否可以将该资源以多部分/形式发送到URL,如果可以,如何发送
我试着把:
app.factory('resource_name', ['$resource', function($resource) {
return $resource('<url> ',
{
<params_for_url>
},
save: {
method: "POST",
headers: {
"Content-Type": "multipart/form-data;"
}
},
以前有人满足过这个要求吗?如果这是可能的话
谢谢 我找到了解决这个问题的办法。您必须使用FormData来提交它。您可以将其用作拦截器。我这样使用它(这是我的ngResource保存方法) 这是变压器:
function formDataObject (data) {
var fd = new FormData();
angular.forEach(data, function(value, key) {
fd.append(key, value);
});
return fd;
}
仅设置内容类型不会使用AJAX上载文件…如果需要跨浏览器支持,请使用文件上载器插件它需要什么转换器?否则它不会发送文件…它只发送简单的表单字段。什么是transformer,看看angularjs官方页面这很有效,但我在使用它时没有设置标题内容长度,有没有办法为文件设置标题内容长度?你有没有尝试过使用不包含文件的表单?它有效吗?我认为应该,但在这种情况下,您还应该考虑更改enctype
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;
}