当我们使用angular时,希望能够上传文件,自从FormData出现后,我们能够很容易的实现文件的异步上传。
使用jQuery:
var file = $('input[name=upload]')[0].files[0]; // <input type="file" name="upload">
var param = new FormData();
param.append('name', '123');
param.append('your_file', file); // 或者使用form,即: var _param = new FormData($('form[name=formName]')[0]);
$.ajax({
url: _'your url',
type: 'POST',
data: param, // param为FormData对象
processData: false,
contentType: false,
success: function(resp) {
if(cb) cb(resp);
},
error: function(err) {
console.log(err);
}
});
使用$http:
$http.post('your url', param, {
withCredentials: true,
headers: {'Content-Type': undefined},
transformRequest: angular.identity
})
使用restangular:
var userApi = Restangular.withConfig(function(Configurer) {
Configurer.setBaseUrl('base url');
});
userApi.one('me').withHttpConfig({transformRequest: angular.identity}).customPOST(param, '', undefined, {'Content-Type': undefined}).then(function(resp) {
...
}, function(err) {
...
})
参考网址:https://gitbub.com/mgonto/restangular/issues/420