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(){
});
}