iPhoneから画像を送信する方法は次回の記事に載せておきます。
name="image"
の形式で送信された画像を保存する方法です。
DBのテーブルは
id int(11) auto_increment
mime varchar(50)
image mediumblob
ってかんじです。
//アップロードされた画像は$_FILE['image']でアクセスできます if($_FILES['image']['error']){ exit; } $mime = $_FILES['image']['type']; //画像のmime(image/jpegなど)を取得 $path = $_FILES['image']['tmp_name']; //アップロードされた一時ファイルへのパスを取得 if($mime == 'image/pjpeg') $mime = 'image/jpeg'; if($mime == 'image/x-png') $mime = 'image/png'; $imginfo = getimagesize($path); //画像情報の取得 if($imginfo[2] == IMAGETYPE_JPEG || $imginfo[2] == IMAGETYPE_GIF || $imginfo[2] == IMAGETYPE_PNG){ //画像データの取得 if($mime == 'image/png') $image = imagecreatefrompng($path); else if($mime == 'image/jpeg') $image = imagecreatefromjpeg($path); $width = $imginfo[0]; //0:widthを取得 $height= $imginfo[1]; //1:heightを取得 $newWidth = 240; $rate = $newWidth / $width; $newHeight = $rate*$height; global $newImage; $newImage = imagecreatetruecolor($newWidth, $newHeight); //リサイズして$newImageに保存 imagecopyresizedよりも効率がいいらしい imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); //imagejpeg($newImage,"./files/tmp.jpeg",100); //jpeg形式で一時ファイルに保存(100の部分は品質。75がデフォルト値) imagejpeg($newImage,$_FILES['image']['tmp_name'],100); } if(is_uploaded_file($path)){ $mime = 'image/jpeg'; $mime = addslashes($mime); //圧縮画像データの取得 $data = addslashes(file_get_contents($path)); //DBに格納 $sql = "insert into image (mime, image) values ('$mime', '$data')"; mysql_query($sql) or die(mysql_error()); }こんな感じでDBに画像を保存できます。
iPhoneからの投稿はまた次回〜