Javascript 使用Angular/Cordova上载文件
我试图通过AngularJs中的Javascript 使用Angular/Cordova上载文件,javascript,angularjs,cordova,Javascript,Angularjs,Cordova,我试图通过AngularJs中的$http提供者发布一个FormData对象 在浏览器中,可以将input[type=file]的文件值附加到FormData并通过$http发布。比如: formData.append('file', inp.files[0], 'nai.jpg'); formData.append('text', 'hello'); $http.post('url', formData, { transformRequest: angular.identity,
$http
提供者发布一个FormData
对象
在浏览器中,可以将input[type=file]
的文件值附加到FormData
并通过$http
发布。比如:
formData.append('file', inp.files[0], 'nai.jpg');
formData.append('text', 'hello');
$http.post('url', formData, {
transformRequest: angular.identity,
headers: { 'Content-Type': undefined }
});
服务器得到了带有两个主体字段的post请求。但在Cordova应用程序中,input[type=file]
不可用,因此我可以通过本机插件从用户那里获取fileURI
,如下所示:
navigator.camera.getPicture(function(fileURI) {
// i got fileURI
});
现在,请解释我如何将
fileURI
作为文件放入formData
,并通过$http
Angular(而不是FileTransfer
)的提供者发送。如果我们在配置对象中指定选项,Cordova还提供图像的base64数据。这样您就可以将相同的base64数据传递给服务
var cameraOptions = {
destinationType : 0 /*(DATA_URL -- For base64 data)*/
}
navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);
谢谢。是的,但是这条路太重了。想象一下,在提交之前,我应该将5mb字符串保存到javascript变量中。