尝试将照片上传到Flask服务器

时间:2020-03-02 20:42:24

标签: android cordova flask

我正在一个项目中,我在手机上拍照并上传到服务器。我目前可以使用该按钮,它可以返回图像的位置。我应该如何或怎样添加才能获得base64编码,或者如何继续将其上传到flask。谢谢

    <div class="page">
        <p><img src="img/logo.png" alt="image" id="photo" /></p>
        <p><button id="btn">Take Picture</button></p>
        <p id="msg"></p>
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script>
        let app = {
            init: function(){
                document.getElementById('btn').addEventListener('click', app.takephoto);
            },
            takephoto: function(){
                let opts = {
                    quality: 80,
                    destinationType: Camera.DestinationType.FILE_URI,
                    sourceType: Camera.PictureSourceType.CAMERA,
                    mediaType: Camera.MediaType.PICTURE,
                    encodingType: Camera.EncodingType.JPEG,
                    cameraDirection: Camera.Direction.BACK,
                    targetWidth: 300,
                    targetHeight: 400
                };

                navigator.camera.getPicture(app.ftw, app.wtf, opts);
            },
            ftw: function(imgURI){
                document.getElementById('msg').textContent = imgURI;
                document.getElementById('photo').src = imgURI;

            },
            wtf: function(msg){
                document.getElementById('msg').textContent = msg;
            }
        };

        document.addEventListener('deviceready', app.init);
    </script>
</body>

1 个答案:

答案 0 :(得分:0)

这里有两个问题。

1)您想允许用户将文件上传到flask。有一种内置方法可以做到这一点。但是,我个人建议使用Flask-Uploads。这是一个Flask扩展程序,专门用于简化此操作。

2)您需要将文件转换为base-64。为此有一个内置模块base64