问题描述
我知道有很多关于这方面的问题,但我无法得到这个工作:
我想上传一个文件从输入到服务器在多部分/形式数据
我尝试了两种方法。首先:
$ $ $ $ $ $ $ $ $ $ $ $ $ $'
对于一个图像
Content-Type:image / png
$ p $而应该是multipart / form-data
和另一个:
b $ b
标题:{
'Content-Type':multipart / form-data
},
但是这需要一个边界标题,我相信不应该手动插入...
我读过,你可以做
$ b $ pre $ $ $ $ $ $ httpProvider.defaults.headers.post ['Content-Type' ] ='multipart / form-data;字符集= UTF-8’ ;
但是我不希望所有的帖子都是multipart / form-data。默认应该是JSON
解决方案请看FormData对象:
this.uploadFileToUrl = function(file,uploadUrl){
var fd = new FormData();
fd.append('file',file);
$ http.post(uploadUrl,fd,{
transformRequest:angular.identity,
headers:{'Content-Type':undefined}
})
。成功(函数(){
})
.error(函数(){
});
}
I know there are a lot of questions about this, but I can't get this to work:
I want to upload a file from input to a server in multipart/form-data
I've tried two approaches. First:
headers: { 'Content-Type': undefined },
Which results in e.g. for an image
Content-Type:image/png
while it should be multipart/form-data
and the other:
headers: { 'Content-Type': multipart/form-data },
But this asks for a boundry header, which I believe should not be manually inserted...
What is a clean way to solve this problem?I've read that you can do
$httpProvider.defaults.headers.post['Content-Type'] = 'multipart/form-data; charset=utf-8';
But I don't want all my posts to be multipart/form-data. The default should be JSON
解决方案Take a look at the FormData object:https://developer.mozilla.org/en/docs/Web/API/FormData
this.uploadFileToUrl = function(file, uploadUrl){ var fd = new FormData(); fd.append('file', file); $http.post(uploadUrl, fd, { transformRequest: angular.identity, headers: {'Content-Type': undefined} }) .success(function(){ }) .error(function(){ }); }
这篇关于使用$ http发送多部分/表单数据文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!