カメラで撮った写真のアップロード
Androidでは、Webブラウザーで
input要素へ type=”file” を指定することで
ファイルアップロードが可能
これを使うことで、写真を撮って、アップロードすることができる
また、accept=””の設定で
アップロードするファイルも指定することができる
アップロードには、HTMLでファイルをアップロードするマルチパートを使う
注意点としては、formの中で
data-ajax=”false”
にすること
理由は、jQueryMobileがAjax通信しているため
enctype=”multipart/form-data”
を指定したマルチパート形式でファイルのアップロードができないから
ソースにすると
<form action="upload.php" method="post" enctype="multipart/form-data" data-ajax="false" data-role="fieldcontain"> <label for="photo">写真</label> <input type="file" name="photo" id="photo"></input> <input type="submit" value="upload"> </form>
これでもアップロードはできるけど、
ファイルの種類制限がないので、実は写真意外のアップロードも可能
セキュリティーも考えれば、不必要なファイルは良くないので
accept=”” でファイルの種類制限をかける
accept=”image/*”にすることで
画像ファイルのみ選択可能になり
カメラで撮影した写真も対象になる
ということで、ソースの修正
<form action="upload.php" method="post" enctype="multipart/form-data" data-ajax="false" data-role="fieldcontain"> <label for="photo">写真</label> <input type="file" accept="image/*" name="photo" id="photo"></input> <input type="submit" value="upload"> </form>
ちなみに、accept=””で指定できるのは
image/*
画像ファイル、もしくはカメラから撮影
audio/*
音声ファイル、もしくはマイクから録音
video/*
動画ファイル、もしくはカメラから撮影