【问题标题】:Uploading file using Angular/Cordova使用 Angular/Cordova 上传文件
【发布时间】:2016-09-26 08:01:00
【问题描述】:

我正在尝试通过 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 }
});

服务器收到带有两个正文字段的发布请求。但是在 Cordova 应用程序中,input[type=file] 不可用,所以我可以通过这样的原生插件从用户那里获得fileURI

navigator.camera.getPicture(function(fileURI) {
    // i got fileURI
});

现在,请解释我如何将 fileURI 作为文件发送到 formData 并通过 $http Angular 提供者(而不是 FileTransfer)发送。

【问题讨论】:

    标签: javascript angularjs cordova


    【解决方案1】:

    如果我们在配置对象中指定选项,Cordova 也会给出图像的 base64 数据。这样您就可以将相同的 base64 数据传递给服务。

    var cameraOptions = {
       destinationType : 0 /*(DATA_URL -- For base64 data)*/
    }
    navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);
    

    【讨论】:

    • 谢谢。是的,但是这种方式太重了。想象一下,我应该在提交之前将 5mb 字符串保存到 javascript 变量中。
    猜你喜欢
    • 2016-05-14
    • 2017-11-13
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2014-03-02
    • 2015-03-06
    相关资源
    最近更新 更多