Eu encontrei esta resposta que é brilhante:
No iPhone iOS6 e do Android ICS em diante, HTML5 tem a seguinte tag que permite que você tire fotos do seu dispositivo:
<input type="file" accept="image/*" capture="camera">
A captura pode assumir valores como câmera, filmadora e áudio.
É possível dar um passo adiante usando algum tipo de ajax para fazer o upload imediato da foto depois de tirada?
Por exemplo, usando meu telefone, uma vez que toco na entrada, ele abre a câmera que me permitirá imediatamente tirar uma foto e salvá-la. Quando eu salvo na câmera, ele é listado pelo botão de entrada como o arquivo a ser carregado.
O que seria necessário para que essa foto fosse carregada imediatamente, em vez de esperar que o usuário clique no botão Enviar do formulário?
Respostas:
É realmente fácil fazer isso, basta enviar o arquivo por meio de uma solicitação XHR dentro do manipulador onchange de entrada do arquivo.
<input id="myFileInput" type="file" accept="image/*;capture=camera"> var myInput = document.getElementById('myFileInput'); function sendPic() { var file = myInput.files[0]; // Send file here either by adding it to a `FormData` object // and sending that via XHR, or by simply passing the file into // the `send` method of an XHR instance. } myInput.addEventListener('change', sendPic, false);
fonte
sendPic()
upload do arquivo imediatamente após a câmera tirar a foto?