2016-05-11 3 views
0

Есть ли способ открыть галерею устройств, например, при нажатии на вход файла типа и выбрать изображение, только что записанное с помощью камеры устройства?Как открыть галерею Android после съемки?

Моя проблема в том, что у меня уже есть вход для файла, но теперь, когда я нажимаю на него, я открываю камеру, чтобы сделать снимок. Можно ли открыть галерею устройств после съемки, чтобы выбрать снимок, который я только что взял для его загрузки?

Теперь я получаю его на базе 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); 
 
    } 
 
    }); 
 
})

Или есть способ получить фотографию отснятой просто нравится, когда у меня есть входной файл и выбрать из галереи?

EDIT:

Я нашел другое решение моей проблемы без того, чтобы открыть галерею после съемки.

Я получаю изображение как сейчас, в формате base64. Я передаю его на PHP с помощью AJAX, а затем я его расшифровываю, используя base64_decode(), а затем сохраняю его на сервере с помощью file_get_contents(), после чего довольно простой путь к базе данных. Вот и все. Успех.

Хотя я не могу показаться слишком фото, снятое на моем устройстве. У кого-нибудь есть идея, где его можно хранить. Или я должен сохранить его вручную после съемки?

+0

Вы можете сразу получить захваченное изображение, то почему вы хотите открыть галерею после съемки? – Dhiraj

+0

Потому что я получаю его, но закодирован в base64, и я не хочу сохранять его так, как в базе данных. – Ionut

+0

, но вы можете сохранить путь изображения к базе данных, и это предпочтительный способ сохранить изображение в базе данных – Dhiraj

ответ

1

Я думаю, вы хорошо с андроидом side.You получают изображения в base64 encoded.Now здесь является link, где вы можете нашли, как переместить изображение в нужное место на сервере и при вы закончите с тем, что вы можете сохранить путь к этой папке в базе данных

Таким образом, производительность вашей базы данных не повлияет на то, что вы собираетесь хранить только пути в базе данных. И для получения захваченного изображения непосредственно следуйте за этим link и см. Ответ от Augusto Picciani

+0

Вы хотите сохранить изображение, закодированное в base64 в базе данных? – Ionut

+0

@Anonymous Нет нет. У вас будет одна папка со стороны сервера, поместите все изображения в эту папку и сохраните путь к этой папке в базу данных. – Dhiraj

+0

@ Анонимный и как вы можете поместить выбранные и загруженные изображения с андроидной стороны, хорошо объяснено в первой ссылке – Dhiraj

0

$('#file_input').on('click', function(e){ 
 
    e.preventDefault(); 
 
    navigator.camera.getPicture(onSuccess, onFail, { 
 
     quality: 100, 
 
     destinationType: Camera.DestinationType.FILE_URI, 
 
\t sourceType: 2, // 1 for camera, 2 for gallery 
 
\t allowEdit: true, // Can edit the pictures and lets the user pick gallery app 
 
\t mediaType: Camera.MediaType.PICTURE, 
 
\t encodingType: Camera.EncodingType.JPEG, 
 
\t popoverOptions: CameraPopoverOptions, 
 
\t // targetWidth: 500, 
 
\t // targetHeight: 500, 
 
\t saveToPhotoAlbum: false, 
 
\t correctOrientation: true // false: switches the height and width }); 
 
    }); 
 
    function onSuccess(imageData) { 
 
     // here I can upload imageData to the server 
 
    } 
 
    function onFail(message) { 
 
     alert('Failed because: ' + message); 
 
    } 
 
    });

+0

Я думаю, что вы пропустили меня. Сначала мне нужно сфотографироваться с камерой, а затем открыть галерею, чтобы получить фотографию, которую я взял. Теперь он открывает вкладку, чтобы выбрать галерею. – Ionut

Смежные вопросы