さ~てHTTPサーバに画像を送るためBBSProxyクラスにsendImageメソッド追加するっすよ~。
 まずは掲示板書き込み用画像として

UIImage*	_image;

 をメンバ変数に用意してsendImageメソッドを宣言。
 メソッドの処理はspeakとほとんど同じで

-(void)sendImage:(UIImage*)image
{
[_image release];
_image = [image retain];
[self connect];
}

 とやるだけ。
 あとはconnectメソッドで_imageが設定されてたら_imageの画像データも送るようにすればいい。

 注意)同時にname="up"、value="アップロード"ていうデータも送らないと登録作業に入ってくれない。imageup.php側でif ($_REQUEST["up"] != "")とやってるんだからあたりまえ。

 このBBSProxyクラスは「iPhoneアプリ開発、その(145)」で"name"と"comment"を送るために用意してたので、送る内容は、だいたい以下のようになるはず(このフォーマットの詳細は「iPhoneアプリ開発、その(139)」を参照)。

Content-Type
multipart/form-data; boundary=--xcc2009

--xcc2009
Content-Disposition: form-data; name="name"
Content-Type: text/plain;charset=utf8
名称
--xcc2009--
--xcc2009
Content-Disposition: form-data; name="comment"
Content-Type: text/plain;charset=utf8
コメント内容
--xcc2009--

 注意)名称コメント内容は_name、_comment変数の内容。

 今回は、こいつにname="img_path"、filename="ipodfile.jpg"という画像データとname="up"、value="アップロード"ていうデータを追加することにします。"name"、"comment"は必要ないんですが放っておいても影響は無いので無視だ。
 name="img_path"ってするのは、imageup.php側でその名前で参照してるから。filename="ipodfile.jpg"も同じ理由。ただし利用するのは拡張子である".jpg"だけなのでipodfileの部分はなんでもいい。

 画像の埋め込むには「その(139)」で参考にしたサイトの記事iPhone Noob>RECENTLY WRITTEN:Post a UIImage to the webを読むと

--xcc2009
Content-Disposition: form-data; name="img_path"; filename="ipodfile.jpg"
Content-Type: application/octet-stream
画像データ
--xcc2009--

 ってブロックを作ればいいことがわかる。
 で、UIImageからの画像データの取り出し方は、これまた書かれてるとおり

NSData *imageData = UIImageJPEGRepresentation(_image, 0.5);

 これ一発です。
 これは、UIImageの画像をJPEGデータとしてNSDataに入れて取り出すという関数。後ろの0.5は圧縮率であり画質の指定。0.0~1.0で指定するみたいで0.0は圧縮率がもっとも高く画像サイズは小さくなるけど、画質は最悪、1.0がその対極でサイズはでかくなるけど画質は最高を指定する事になる。
 JPEGの他にUIImagePNGRepresentationなんてのもあった。こっちを指定する場合、当然filename="ipodfile.jpg"もfilename="ipodfile.png"に変える必要があるでしょうな。
 
 おりゃああああ、神よ~、と実行。
 前回の画像選択後、今度はリストに画像が追加されたはず。

$テン・シー・シー-1
入ったザンス~

 よっしゃあ、次、実機でカメラ撮影としゃれこみますか~♪
 やっちゃう?
 やっちゃうよ~♪

 と勢い込んでiPhoneつないだら

 開発をサポートできませんでした。

 ...
 出ましたorz
 またですわ。
 またや、またや、またですわ~。

 ずっとiPhoneをバージョン3.0で使ってたけど、こいつがまずいのか?
 セカイカメラも使いたいし、そろそろバージョン3.1にあげっか?
 というわけでiTunesでバージョンアップ。
 Xcodeに戻ると、げえええええ。

 サポートするSDKがありません。

 って、そりゃそうか、俺3.0SDK使ってたし...
 ということで今度は、3GB近いiphone_sdk_3.1.2_with_xcode_3.1.4をダウンロードですわ。
 これで文句ねーだろと実行。

 有効なプロビジョニングがありません。

 ってファッークス。
 なんでじゃああ、7月に入れたばっかじゃんよ~とDevCenterみると、3.1用のプロビジョニング作ってねとか書いてるのよ。
 これか~とプロビジョニング作って入れて実行。今度はインストールまで行ってるOK~とか思ってたら起動でこけました。

 Security Error

 って、なんでじゃ~、なんでじゃ~、なんでじゃい~。を連発しながらしつこく起動しようとしててふと思いついたのが古いプロビジョニングの削除。
 こいつがかぶってるんじゃねーかと削除。
 ようやく動きました。
 実機動かすまでに、2時間、死ぬほど疲れたわ。

 注意)当然ですが、BBSProxy.mの"http://localhost/imageup.php"って書かれてる2カ所は、localhostをIPアドレスに置き換えないと駄目(http://192.168.0.13/imageup.phpって感じ)なのと、ネットワークも3G回線じゃなく自宅の無線LAN回線が前提です。IPアドレスの調べ方は「iPhoneアプリ開発、その(136)」を読むべし。


テン・シー・シー-2
ほら、みてみてみて~、ちゃんと「写真を撮る」て出るっしょ
 
 んじゃ、軽くPhoto Boothに写ってる自分の姿を...

$テン・シー・シー-5
パシャりんこ(このJEPG画像がiPhoneから送られてきた画像)

 おおお、入りました。
 
テン・シー・シー-4

 また一歩、野望に近づいた。

------------
サンプルプロジェクト:rss10.zip


ゲット!
treasure