Natknąłem się na tę odpowiedź, która jest genialna:
W iPhone iOS6 i Android ICS i nowszych, HTML5 ma następujący tag, który umożliwia robienie zdjęć z twojego urządzenia:
<input type="file" accept="image/*" capture="camera">
Przechwytywanie może przyjmować wartości, takie jak aparat, kamera i dźwięk.
Czy można pójść o krok dalej, używając jakiegoś rodzaju Ajax do natychmiastowego przesłania zdjęcia po jego zrobieniu?
Na przykład, używając mojego telefonu, po dotknięciu wejścia otwiera się aparat, który natychmiast pozwala mi zrobić zdjęcie i je zapisać. Kiedy zapisuję go w aparacie, jest wyświetlany obok przycisku wprowadzania jako plik do przesłania.
Co wymagałoby natychmiastowego przesłania tego zdjęcia zamiast czekania, aż użytkownik kliknie przycisk Prześlij w formularzu?
Odpowiedzi:
Jest to naprawdę łatwe, po prostu wyślij plik za pośrednictwem żądania XHR wewnątrz modułu obsługi zmiany wejścia pliku.
<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);
źródło
sendPic()
o natychmiastowe przesłanie pliku po wykonaniu zdjęcia przez aparat?