サーバに画像を送ってサーバにその画像を保存する方法について書きます。クライアント側(openFrameworks)では2つの方法を書いておきます。
1. ofxHttpFormで送信する場合(openFrameworks)
以下のようにofxHttpFormを使うと簡単に送信ができます。
| 
					 1 2 3 4 5 6  | 
						ofxHttpForm form; form.action = "http://your_saver.com/upload.php"; form.method = OFX_HTTP_POST; form.addFile("file", "image.png"); httpUtils.addForm(form);  | 
					
2. curlで送信する場合(openFrameworks)
もう一つ紹介しておきます。curlを使っているためOF0.8でも同様のことができるはずです。これはOF0.7での画像アップロード方法がわからず苦肉の策としてやっているのでofxHttpFormの方がスマートであります。
内容としてはcurlで画像をphpにアップロードしてレスポンスをresponse.xmlに保存しています。
| 
					 1  | 
						system("curl -F file=@../../../data/image.png http://your_saver.com/upload.php > ../../../data/response.xml”);  | 
					
サーバ側(PHP)
サーバ側のPHP(upload.php)は以下のようになっています。単純に画像をOFから受け取ったらレスポンスとしてエラー番号かxmlを返すようにしています。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  | 
						<?php if ($_FILES["file"]["error"] > 0){ 	echo "Error: " . $_FILES["file"]["error"] . "<br />"; }else{ 	if (is_uploaded_file($_FILES["file"]["tmp_name"])) { 		if (move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"])) { 			chmod($_FILES["file"]["name"], 0644); 			$image = ImageCreateFromPNG($_FILES["file"]["name"]); 			ImageJPEG($image, "image.jpg", 100); 			echo '<root><url>https://www.google.co.jp/</url></root>'; 		}else{ 			echo "500"; 		} 	}else{ 		echo "400"; 	} } ?>  | 
					
		        
							
														
						
							
														
						



					
				




コメントを残す