• 締切済み

携帯で撮影した画像をサーバーにアップロードしたい【iアプリ→PHP】

iアプリ携帯で撮影した画像をサーバーにアップロードし、 アップロードした画像をPHPでサーバーに保存したいと考えています 自分なりにネットや書籍を調べたのですが  ・iアプリで画像をアップロードしcgiをつかってサーバーに保存  ・HTMLで画像をアップロードし、 PHPをつかってサーバーに保存 は情報(サンプルコード)はあるのですが、 iアプリ→PHPの方法(コーディング)がわかりません 特に、PHPがアップロードした画像データを取得する方法が わかりません HTMLからPHPを呼んだ場合は「$_FILES」を使用するのですがiアプリの場合はどう実現したらいいのでしょうか? ご存知の方がいらっしゃいましたら是非お願いいたします

  • PHP
  • 回答数4
  • ありがとう数1

みんなの回答

回答No.4

http://d.hatena.ne.jp/nacookan/20080108/1199774995 ちょっと調べてみました。 こちらのブログに、javaアプレットでファイルのアップロードの実装の仕方が書いてありました。 後は、iアプリでソレを行うためのクラスが利用可能であれば出来るようです。

ping2009
質問者

補足

hogehoge78様 回答ありがとうございます iアプリで行うためのクラスを調査中です 結果が出てからお返事をしようと思っていたのですがまだ見つからず お返事が遅くなってすみません 改めて結果を書き込みます

回答No.3

iアプリで実装するにしても、なんにしても、ファイルをPOSTして、そのPOSTされたデータをPHPで受信するのであれば、Webサーバに対して、HTTPプロトコルでデータを送信しなければなりません。 例えば、普通のフォームで、単純にINPUTタグに記述された内容を送信した場合も、HTTP通信してますが、その場合は、 ============================================================= POST /php/path HTTP1.0 Host: www.example.com Content-Type: application/x-www-form-urlencoded Content-Length: 47 input_name=input_value&input_name2=input_value2 ============================================================= このようなHTTPヘッダ(とPOSTされた内容)をWebサーバに送信してやり、PHPでその結果を受信し、$_POSTにデータを格納してます。 そして本題のファイルのアップロードに関しては ============================================================= POST /php/path HTTP1.0 Host: www.example.com Content-Type: multipart/form-data Conent-Length: ファイルの長さ -----------------------------boundary Content-Disposition: form-data; name="test"; filename="ファイルの名前" Content-Type: ファイルタイプ コンテンツの内容(つまり画像だったら画像のバイナリが記述される) -----------------------------boundary-- ============================================================= このようなHTTPヘッダを記述してやる必要があります。 iアプリで行う場合でも、HTTP通信を行うためのメソッドなりクラスなりライブラリを利用して、上記のような生のHTTPヘッダを記述し、送信するような流れになると思います。 もし、iアプリにこだわっておらず、簡単に済ませる場合は、添付ファイル付のメールでサーバに送信して、PHPで処理するという方向ではどうでしょう。つまり携帯電話の空メールで登録するという処理と近い処理で出来るので割かし簡単だと思います。 http://hal456.net/qdmail_rec/&category?cat=%E6%9C%AA%E5%88%86%E9%A1%9E このようなライブラリもあります。

ping2009
質問者

補足

hogehoge78様 回答ありがとうございます HTTPヘッダの編集方法について質問です Content-Typeについては「setRequestProperty」で設定できるのですが、Content-Dispositionをどのように設定するのかを調べたのですがわかりませんでした またHTMLは、 <form action="file_upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="upfile"><br> <input type="submit" name="submit" value="SEND"> </form> と記述した場合、$_FILES['upfile']['name']にアップロードしたファイル名が格納されると思いますが、iアプリからHTTP通信をした場合はどのように、ファイル名を取得するのでしょうか? 今回はiアプリを前提としています 残念ながらメールでのアップロードは使えないのですが 今後他の機会があれば参考にさせていただきたいと思います

  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.2

#1です。 Sourceがありました。 ちょっと古いですが、送受信の所は参考になると思います。 http://www.nakka.com/i/npop/ inpop.cgiがサーバ側で動くものです。 バイナリというかデータを送受信するときに、何をやろうとするのかなどのコマンド交換が必要なケースがありますよね。 ところが、データなのかコマンドなのかの判断がしにくいために特定の文字列の連続がコマンドに解釈されて不具合を起こす場合があります。 上記のSourceでも特定の文字は送れないようです。 なので、何らかのコードにエンコードするなどちょっと工夫が必要になるかと思います。

ping2009
質問者

補足

MOMON12345様 回答ありがとうございます サンプルソースありがとうございます たびたび申し訳ありませんが、質問です 基本的にcgiでもPHPでもiアプリ側のコーディングに関しては同じ様に考えてOKということでしょうか?

  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.1

iアプリからはHTTPの通信しかできませんので、フォームを使ったPOSTを行うことになります。 バイナリを通せるように工夫するか、データの方を加工するかも必要でしょう。 httpdサーバ側は普通にブラウザからPOSTされたデータを読むようにすればOKです。 なおiアプリは、そのアプリをダウンロードしたサーバでかつ名前(FQDN)が付いているものとしか通信が出来ません。

ping2009
質問者

お礼

MOMON12345様 早速の回答ありがとうございます 私の知識不足のため、何点か質問させてください >フォームを使ったPOSTを行うことになります。 「フォームを使ったPOST」の実現方法を教えていただけますか? HTMLの場合FORMタグを使用するはわかるのですが iアプリではどのようにするのでしょうか? (CanvasやPanelにフォームを埋め込む?  iアプリにHTMLが書き込める?等々) >バイナリを通せるように工夫するか、 大変申し訳ありませんが、バイナリを「通す」の意味が難しいです >データの方を加工するかも必要でしょう。 cgiをつかったサンプルプログラムで画像データを出力ストリームにセットしていたのですが、そのような処理の事でしょうか? 質問の文章が稚拙で分かりづらいかもしれませんが、よろしくお願いいたします

ping2009
質問者

補足

ここに書くべき内容を「この回答へのお礼」に記入してしまいました 申し訳ありません

関連するQ&A

  • iアプリで画像データを自動アップロードしたい

    iアプリのカメラで数秒おきに自動的に撮った画像を、ネットワーク経由でサーバに自動アップさせるプログラムを考えています。 しかし、サーバ側でどのような環境でアップロードされたプログラムを保存すればいいのかがわからないです。わからないのは具体的に、サーバ側でiアプリからきた画像データを自動的に受信してサーバのハードディスクに保存する手法です。 ネットで調べてみましたが、PHPではフォームのボタンを押すことでアップロードするようになっていました。JSPは調べてみたがどの技術を使うのかがよくわからないです。

    • ベストアンサー
    • Java
  • 携帯からの画像アップロード

    携帯から画像をアップロードできるシステムを作成しようとしているのですが、行き詰っています。 携帯からは<input type="file">が使えないということなので、 メールで添付してもらってそれを処理するというのまでは理解できましたが、 その処理をするシステム自体をどう作成していいのかわかりません。 http://php.s3.to/bbs/bbs7.php 上記のものを使用し、画像をアップロードすることはできたのですが、 このようなものでなく、画像をメールで添付したら自動でアップロードできるシステム(mixiの日記のようなもの)が作成したいのですが、 どのようにしたらいいのでしょうか。 PHPの知識は多少ありますが、CGIの知識はありません。 サンプルがあるサイトや、PHPでもこうしたら作成できるなどなど、 教えてください。

    • ベストアンサー
    • CGI
  • アップロードをしたら画像が表示されない

    アップロードをしたら画像が表示されなくなってしまい困っています。 Photoshopでスライス機能を使って画像ごとにリンクを貼り、ウェブ用に保存で画像とHTMLを保存して、サーバーにアップロードしたのですが、リンクは有効にいけるのですが画像が表示されません。解決方法を教えてください。

    • ベストアンサー
    • CSS
  • 携帯での画像アップロード方法

    携帯サイトを作っています。 画像をアップロードする機能が一部にしかないということで、 それを実現するには画像を添付したメールを送る方法がとられている事が今までの質問などを読み理解できました。 しかし、それは理解できても何から始めればいいのかさっぱりです。 まず、何を始めればいいのでしょうか。参考になる本やページがあれば教えて頂けませんか? 今はjspで作成しております。 phpは本当に少しだけ、cgi,perlなどの知識は皆無ですが必要とあらば学習していくつもりです。 実現したい事は以下の通りです。 「携帯で撮った画像を添付したメールを送信するとサーバーが処理をしてDBに登録(画像も本文内容も登録)」

    • ベストアンサー
    • HTML
  • 3日で作るPHPの本で画像アップロードするには?

    3日で作るPHPの本で画像アップロードするには? フォーム内 画像 <input type="file" name="image" size="40"><br> 下記内容でファイル内に保存する $upload_file = date("ymdHis")."_".basename($_FILES["image"]["name"]); $upload_path = "<保存先のディレクトリ名>".$upload_file; $upload_url = "./images/".$upload_file; move_uploaded_file($_FILES["image"]["tmp_name"],$upload_path); 以上のように表記してありましたが、 表示の仕方が書いていなくどのように表記したよいのかサンプルなどで教えていただきたいです。 さらに上記のように保存先のディレクトリ名書を絶対相対パスで書いてみたのですが保存されませんでした。 どこを変更するとよいでしょうか

    • 締切済み
    • PHP
  • javaからphpへのファイルアップロードで困っています

    クライアントからサーバへファイルをアップロードするJAVAプログラムを作成しているのですが、アップロードの処理が分からず困ってます。 処理の流れとしては、 HTML(クライアント)でファイルを指定し、 PHP(サーバ)でクライアントから指定されたファイルの受信処理を行う。 このHTML(クライアント)の部分をJAVAで作成しようと考えています。 HttpURLConnectionで接続までは作成できましたが、JAVAでHTMLの <input type="file" name="upfile"> の部分をどのようにコーディングするのか分かりません。 //PHP受信処理↓ $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed"); print($_FILES['upfile']['error']); print("<b>失敗</b>"); } else { print("<b> $filename </b> uploaded"); print("<b>成功</b>"); どなたかご存知の方がいらっしゃいましたら御教授お願いします。

  • PHPで画像データーのアップロードを行っています。

    PHPで画像データーのアップロードを行っています。 一つの画像を imagesファイルにアップロードするまでは出来たのですが一度に複数の画像をアップロードする方法が分りません。 本で読んだところ、fileを配列にすれば良いと書いてあったのですが単純にフォームを配列にしてもやはり一つの画像しかアップ出来ませんでした。 -- form.html -- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <form enctype="multipart/form-data" action='upload.php' method='post'> <input type="hidden" name="MAX_FILE_SIZE" value="102400" /> <input type="file" width=40 name="sendfile" /> <input type="submit" value="送信" /> </form> </body> </html> -- upload.php -- <?php if (!isset($_FILES['sendfile']['name'])){ echo 'ファイルが見つかりません。'; exit; } $fname = $_FILES['sendfile']['name']; $temp = $_FILES['sendfile']['tmp_name']; $target = './images/' . $fname; if (move_uploaded_file($temp,$target)){ echo $fname . "をアップロードしました。"; } else { echo "アップロードに失敗しました。"; } ?> 勉強中の私に分り易く教えていただける方、よろしくお願いいたします。 また、PHPでのメール自動送信は出来たのですが自動受信が分りません。 (お問い合わせメールの様な) これはかなり難しいのでしょうか? フォームからウィンドウズメール、アウトルック等で受信できるようにしたいのですが? PHP3.5+XAMPPでエクリプスを使い勉強しています。

    • ベストアンサー
    • PHP
  • 画像をサーバーにアップロードするやり方

    「HTMLタグによる画像の貼り付け」という質問にありました、『インターネット上で画像を表示するには、一度画像をサーバーにアップロードして、そのリンクをHTMLで記述する必要がある』という回答が、頭では理解はできるのですが、私の知識不足のせいでそのやり方がわかりません。 申し訳ありませんが、どなたか詳しく教えていただけませんでしょうか? よろしくお願いいたします。

  • 画像のアップロード

    現在画像のアップロードをし、同時に画像名と画像の説明文を登録するフォームを作っています。 ****************************************************** 画像名、説明文→AサーバーのDB(PHPファイルと同じサーバー) 画像ファイル→Bサーバーの画像格納フォルダ ****************************************************** 上記のように別々のサーバーに登録したいのですがどのように実現したらよいのでしょうか?

    • ベストアンサー
    • PHP
  • iアプリ サーバーについて

    iアプリを使ってサーバーと通信したいと考えています。一般的にCGIを利用すると聴きますが、javaservletを利用することは可能ですか?

専門家に質問してみよう