拍照后如何打开android画廊?

时间:2016-05-11 14:11:20

标签: javascript android cordova phonegap-plugins

有没有办法打开设备库,就像点击文件类型的输入并选择刚用设备相机拍摄的照片一样?

我的问题是我已经有一个文件输入,但现在当我点击它时我打开相机拍照。可以在拍照后打开设备库选择我刚上传的图片吗?

现在我在基础64编码上得到它。我不是那个,因为我已经有一个php和ajax上传,我已经使用普通图像了。

我的代码:

$(document).ready(function(){
  $('#file_input').on('click', function(e){
    e.preventDefault();
    navigator.camera.getPicture(onSuccess, onFail, { 
      quality: 100,
      destinationType: Camera.DestinationType.DATA_URL
    });
    function onSuccess(imageData) {
      // here I can upload imageData to the server
    }
    function onFail(message) {
      alert('Failed because: ' + message);
    }
  });
})

或者有没有办法让我拍摄的照片就像我输入文件并从画廊中选择一样?

修改

我找到了解决问题的另一种方法,而不必在拍照后打开画廊。

我以base64格式获得现在的图像。我使用AJAX将它传递给PHP然后我使用base64_decode()解码它,然后使用file_get_contents()将其保存到服务器,之后是数据库的一个非常基本的保存路径。就是这样。成功。

虽然我似乎无法找到我的设备上拍摄的照片。有没有人知道它可以存储在哪里。或者我必须在拍照后手动存储它?

2 个答案:

答案 0 :(得分:1)

我认为你在android方面很好。你正在使用base64编码获得图像。现在这里是link你可以找到如何将图像移动到服务器上的所需位置,当你完成它时可以存储数据库中该文件夹的路径

通过这种方式,您的数据库性能不会受到影响,因为您只会在数据库中存储路径  并且为了直接获取捕获的图像,请遵循此link并查看给出的答案 Augusto Picciani

答案 1 :(得分:0)

public static void changeOut(int change){
    int quarters = 0;
    int dimes = 0;
    int nickels = 0;
    while (change >= 25){
        quarters = quarters + 1;
        change = change - 25;
    }
    while (change >= 10){
        dimes = dimes + 1;
        change = change - 10;
    }
    while (change >= 5){
        nickels = nickels + 1;
        change = change - 5;
    }

    // to see the change, print it to the console perhaps
    System.out.printf("\nHere's your change:\n%d quarters, %d dimes, %d nickels and %d pennies!",
        quarters, dimes, nickels, change);
}