使用$ http发送多部分/表单数据文件 [英] Send multipart/form-data files with angular using $http

查看:253
本文介绍了使用$ http发送多部分/表单数据文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道有很多关于这方面的问题,但我无法得到这个工作:

我想上传一个文件从输入到服务器在多部分/形式数据

我尝试了两种方法。首先:

$ $ $ $ $ $ $ $ $ $ $ $ $ $'

对于一个图像

  Content-Type:image / png 


和另一个:


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对象:
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}
})
。成功(函数(){
})
.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发送多部分/表单数据文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆