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からの投稿はまた次回〜





