Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Angular/Cordova上载文件_Javascript_Angularjs_Cordova - Fatal编程技术网

Javascript 使用Angular/Cordova上载文件

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,

我试图通过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,
    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变量中。