技术性解可以使用FormData对象将dataURI数据转换为Blob对象并作为参数传入$http()方法中,示例如下:
var file = dataURItoBlob(dataURI); var fd = new FormData(); fd.append('file', file, 'filename.jpg'); $http({ method: 'POST', url: '/upload', data: fd, headers: {'Content-Type': undefined}, transformRequest: angular.identity }).success(function () { console.log('上传成功'); }).error(function () { console.log('上传失败'); });
function dataURItoBlob(dataURI) { var byteString = atob(dataURI.split(',')[1]); var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; var ab = new ArrayBuffer(byteString.length); var ia = new Uint8Array(ab); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ab], {type: mimeString}); }