カメラで撮った写真のアップロード

カメラで撮った写真のアップロード

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/*
動画ファイル、もしくはカメラから撮影

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です