Android側からPOST通信にてOpenshiftサーバへファイルを送る方法です.
サーバ側はOpenshiftでなくてもなんでもいいですが,PHPで受け取ると仮定します.
★サーバ側(test.php)
これ自体はどこかのサイト様を真似させていただきました.
※無断転載等ご指摘頂いた際は削除いたしますのでご連絡ください.
★Android側
まず,どこかからhttpmime-4.2.1.jarをDLしてきます.
※現在最新版の4.4.1では謎のエラーが発生したので4.2.1を推奨します.
DLしたファイルをlib配下に配置するか,ビルドパスを通します.
ファイルを送りたい場所で以下を記述します.
これでOK.Android側からはMultipartEntityを使ってファイルなどをPOSTすることが出来ます.
ファイルを送る場合は,FileBodyを,文字列を送る場合はStringBodyをつかいます.
なお,これらの動作は遅延等を考慮しバックグラウンド動作させるのがベターなようです.
その辺はAsyncTaskでググりましょう.
また,本ソースコード内には適用しておりますが,以下の点でつまずいたので追記します.
★ $_FILES[ 'picture' ][ 'name' ]が文字化けする
送信側で文字コード指定をしているにもかかわらず,ファイル名が???に文字化けしました.
色々なパターンを試したがダメで,結果ファイル名だけ別途POSTすることで回避しました.
StringBodyは文字化けしない様子です.
このブログを検索
2015年4月20日月曜日
2014年8月27日水曜日
[OpenShift][PHP]Red Hat OpenShiftでターミナルログイン
前回の記事でOpenShiftを用いて無料でクラウドPHP環境を楽しもうという紹介をしました。
使っていくにつれて、ターミナル環境を利用したいと思ったがWindows環境では中々躓いたので記録します。
前提:
クライアント:Windows7 pro
rhc,gitインストール済み
目標:
OpenShift上の自分のアプリケーションにコマンドライン接続
結論:
TeraTermからssh接続し、秘密鍵を指定するだけ。
(ここに辿り着くまでに色々試した。。。)
やり方詳細:
1.OpenShiftの管理画面から「Want to log in to your application?」のリンクを押下
2.現れたボックスの中身をコピーする「ssh ~~~~~~~~@~~~~~~~~」
3.TeraTermのホストのところに貼り付け(ssh は削除してから)てOK
4.RSA/DSA/ECDSA鍵を使うを選択し、秘密鍵を押下
5.秘密鍵はrhc setup時に生成しているはずだが一般的には
>C:\Users\UserName\.ssh\id_rsa
のはずである。またパスフレーズを指定して自分で生成している場合は上図パスフレーズに入力する必要がある。
6.OKを押下するとログイン完了
ここに辿り着くまでに自分でRSA作りなおしたり、コマンドからSSHしたりなんなりで結構迷走しましたが、結論は簡単でした。悲しい。
使っていくにつれて、ターミナル環境を利用したいと思ったがWindows環境では中々躓いたので記録します。
前提:
クライアント:Windows7 pro
rhc,gitインストール済み
目標:
OpenShift上の自分のアプリケーションにコマンドライン接続
結論:
TeraTermからssh接続し、秘密鍵を指定するだけ。
(ここに辿り着くまでに色々試した。。。)
やり方詳細:
1.OpenShiftの管理画面から「Want to log in to your application?」のリンクを押下
2.現れたボックスの中身をコピーする「ssh ~~~~~~~~@~~~~~~~~」
3.TeraTermのホストのところに貼り付け(ssh は削除してから)てOK
4.RSA/DSA/ECDSA鍵を使うを選択し、秘密鍵を押下
5.秘密鍵はrhc setup時に生成しているはずだが一般的には
>C:\Users\UserName\.ssh\id_rsa
のはずである。またパスフレーズを指定して自分で生成している場合は上図パスフレーズに入力する必要がある。
6.OKを押下するとログイン完了
ここに辿り着くまでに自分でRSA作りなおしたり、コマンドからSSHしたりなんなりで結構迷走しましたが、結論は簡単でした。悲しい。
2014年5月6日火曜日
[OpenShift][PHP]Red Hat OpenShiftで無料クラウドPHP
RedHatの提供するOpenShiftを利用すると,基本無料でPHPクラウドが利用できます.
本日はOpenShiftもGitもよくわからない私がPHPでDBアクセスするまでの道のりを説明します.
1.OpenShiftにSign Up
>さすがに説明は省略.適当に新規登録してください.
2. コンソール画面(下図)からAdd Application
>プロジェクトを追加するイメージです.
3.PHP5.4のカートリッジを追加
>カートリッジを選択後,アプリ用のドメインを決定してCreate Applicationを実行
4.MySQLとPHPMyAdminを追加
>自分のアプリを選択後,画面下部にMySQLを追加できるリンクがあります.
>MySQL追加後PHPMyAdminを追加できるリンクがあります.
5.RHC Client Toolをインストール
>上記リンクを参考にRHC Client Toolをインストールします.
>まずRubyをインストール(この時Pathを通さないとコマンドプロンプトで動作確認できません)
>Gitをインストールします.
>コマンドプロンプトから「gem install rhc」 を実行します.
6.アプリ側に自分の開発用端末を追加
>コマンドプロンプトから「
>その後ログインすることで勝手に追加されます.
>20170526追記
>
7.Gitからプロジェクトをチェックアウト
>コマンドプロンプトで「git clone "SSH key?"」を実行します.
>ここで"SSH key?"はコンソールの下図(右の四角)よりコピペします.
8.アップロードはこちらのブログ様を参照
>チェックアウト先(基本的にはC:\Users\<ユーザ名>\<プロジェクト名>)の下に
phpフォルダを作成し,phpファイルも作成します.
>「git add php/<作成ファイル名>.php」を実行します.
>「git commit -m first」を実行します.
>「git push」を実行します.
9.動作確認
>「http://<プロジェクト名>-<ドメイン名>.rhcloud.com/<ファイル名>.php」にアクセスします.
>無事表示されていれば完了です.
>MySQLとの連携は通常のDBアクセスと同じです.
以上,備忘録を兼ねてまとめておきます.
本日はOpenShiftもGitもよくわからない私がPHPでDBアクセスするまでの道のりを説明します.
1.OpenShiftにSign Up
>さすがに説明は省略.適当に新規登録してください.
2. コンソール画面(下図)からAdd Application
>プロジェクトを追加するイメージです.
3.PHP5.4のカートリッジを追加
>カートリッジを選択後,アプリ用のドメインを決定してCreate Applicationを実行
4.MySQLとPHPMyAdminを追加
>自分のアプリを選択後,画面下部にMySQLを追加できるリンクがあります.
>MySQL追加後PHPMyAdminを追加できるリンクがあります.
5.RHC Client Toolをインストール
>上記リンクを参考にRHC Client Toolをインストールします.
>まずRubyをインストール(この時Pathを通さないとコマンドプロンプトで動作確認できません)
>Gitをインストールします.
>コマンドプロンプトから「gem install rhc」 を実行します.
6.アプリ側に自分の開発用端末を追加
>コマンドプロンプトから「
rhc setup」を実行します.>
>20170526追記
>
Enter the server hostname: |openshift.redhat.com| と出力されてしまいログインを問われなくなってしまいました.こちらを参照したところ,これを問われた場合はopenshift.redhat.comと入力すると,ログインを問われますので,ログイン情報を入力するとセットアップが完了します.7.Gitからプロジェクトをチェックアウト
>コマンドプロンプトで「git clone "SSH key?"」を実行します.
>ここで"SSH key?"はコンソールの下図(右の四角)よりコピペします.
8.アップロードはこちらのブログ様を参照
>チェックアウト先(基本的にはC:\Users\<ユーザ名>\<プロジェクト名>)の下に
phpフォルダを作成し,phpファイルも作成します.
>「git add php/<作成ファイル名>.php」を実行します.
>「git commit -m first」を実行します.
>「git push」を実行します.
9.動作確認
>「http://<プロジェクト名>-<ドメイン名>.rhcloud.com/<ファイル名>.php」にアクセスします.
>無事表示されていれば完了です.
>MySQLとの連携は通常のDBアクセスと同じです.
以上,備忘録を兼ねてまとめておきます.
登録:
投稿 (Atom)




