HTML5Tweetモバイルアプリでは、サーバーと連動して動作するものが多くみられます。ハイブリッドアプリでこうしたアプリを作る場合は、Ajaxで実現するのが一般的だと思いますので、そのやり方について説明します。2.3系およびそれ以前のAndroidは、FormDataオブジェクトが未定義のため、この記事の方法は利用出来ません。4.4では、Formからのファイル選択自体ができないため、この記事の方法は利用出来ません。今後のバージョンアップ出来るようになるかは不明です)formタグを使わない手段については、こちらサーバー側の実装まずは、サーバー側の機能の実装です。ここでは、普通にブラウザからもアップロード出来るような作りを考えます。実装はphpですが、他の言語でも基本的に同じように作れると思います。?>写真をおくためにuploadsディレクトリを作成して、書き込み権限を付与しておきます。この状態で、ブラウザからアクセスすると、投稿フォームがあるので、そこから画像をアップロードしてみて下さい。見ているのは、ブラウザフォームからのアクセス(html/textを要求)なのか、後に行うAjaxからのアクセス(jsonを要求)なのかを判定するためです。Ajaxからのアクセスしか行わないのであれば、$_SERVER['HTTP_ACCEPT']))に対するif判定でtrueの部分の処理はいりません。次に、Monacaから「最小限のテンプレート」でプロジェクトを作成します。利用するプラグインとして、「jQuery」を設定します。index.htmlのheader部のjavascriptを以下のようにします。</form>とします。これで、アプリを起動して、写真を選択、OKボタンを押すと、サーバーに接続して、写真ファイルをアップロードが行えます。アップロード後、サーバー側の「REFRESH」リンクをクリックすると、投稿した画像に更新されていることが確認出来ます。コードの内容は、フォーム内容をFormDataクラスとして取得し、それをAjaxによりサーバーに送っているだけなので、難しいところはあまりないと思います。dataTypeを「json」としているのは、サーバからのレスポンスを受けるにはjsonが便利だからなので、htmlやtextとして取得しても問題ありません。(success処理の実装は少し変わります)まとめ簡単ではありますが、Ajaxを利用して画像ファイルをアップロードするサンプルコードを紹介しました。UIなどのフレームワークからも使えます。便利なのは、通常のフォームからデータを取得しているので、画像以外のデータも合わせて送ることが出来ること、既存のフォームにもデータを送ることが出来ることなどです。1つ注意点としては、上記の中でフォームからアップロードする写真を選ぶ部分は、ユーザーが手動でやらなくてはならず、勝手に写真をアップロードすることは出来ません。これはセキュリティ的な制限のためです。(Cordova)のFileTransferを使うことになります。サーバーと連動するアプリの開発に役立ててみて下さい。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。