質問: androidアプリでHTTP通信してMYSQLに画像を保存したいのですが、なかなか参考になるサイトが見つかりません。。。 また、HTTP通信する際にPHPファイルはどこのディレクトリにいれたららいいのですか? https://qiita.com/shunjiro/items/92046bae8651ae8e2850 このサイトは私の解釈だと、androidアプリでPHPとHTMLを実行しているという認識をしておりますが、、、 あってますでしょうか??
回答: > > HTTP通信する際にPHPファイルはどこのディレクトリにいれたららいいのですか? > > > 質問文はスマホアプリ、つまりAndroid端末内にPHPファイルを設置すれば良いんじゃないか? ...と考えていると推測しますが、それは違います。 インターネット上にサーバを構築し、その中にPHPファイルを格納。 つまり「Webサーバを作る」必要があるわけで、全然違うジャンルの話です。 > > HTTP通信してMYSQLに画像を保存したい > > > MySQLはWebサーバでよく使われるHTTPではなく、 MySQLサーバとクライアント間専用で使われるTCP接続でコネクションを張って通信します。 後半のJava云々はAndroidのアプリの話なので、質問文の記事のURLは参考に取っておいてください。 ではなぜ、HTTPやPHPといった一見関係のない話が出たかを解説していきましょう。 前述の通り、MySQLサーバに繋ぐには、専用のクライアントソフトが必要になります。 これは「Android MySQL」等でぐぐればandroid⇒外部mysql接続 - Qiitaといった記事が引っかかりますので、 それを参考にすれば実現は可能です。 ですが、直でMySQLサーバに繋ぎに行くことは辞めたほうが良いですね。 理由は2つ * スマホの性質上、コネクション張りっぱなしのMySQLは相性が悪い * セキュリティ的な問題で他人の情報にアクセスし放題になる エンジニアがスマホアプリでデータをサーバ側に保存したい場合、 大抵別途Webアプリを構築することになります。 要件は下記 * 通信には1回1回終了するHTTPを利用する * RESTFulサーバを構築する * 認証や他のユーザの情報を守る為にWebサーバの機能を利用する ここで初めてPHPが出現します。 (別にPHPで無くても、JavaでもRubyでもWebサーバであれば何でも良いですが) つまり、PHPでWebサーバを構築し、ログイン関係の機能を実装したりMySQLに代わりに通信を行います。 * データをダウンロードしたい: 特定のURLにアクセスすると、裏でPHPがMySQLと通信を行ってデータを返す。 * データをアップロードしたい: 別のURLにアクセスすると、裏でPHPがMySQLと通信を行いデータを保存する。