前回はフォームから画像を受け取り、WEBサーバーへ保存し、ページに表示させました。
phpの組み込み関数を使って、受け取ったファイルを操作して、
サムネール画像を作ってみましょう。
【form.html】
ファイルアップロードのテスト
<form action=”view.php” method=”post” enctype=”multipart/form-data” name=”form1″ id=”form1″>
<input name=”MAX_FILE_SIZE” type=”hidden” id=”MAX_FILE_SIZE” value=”100000″ />
画像:
<input name=”uploadfile” type=”file” id=”uploadfile” size=”50″ />
<br />
説明:
<input name=”comment” type=”text” id=”comment” size=”50″ />
<br />
<input type=”submit” name=”button” id=”button” value=”ファイルアップロード” />
</form>
【view.php】
<?php
$resizeX = 150; //縮小するサイズを指定する
$thumnail_name = “thumnail.jpg”; //縮小するファイル名を指定する
$file_dir = ‘file/';
$file_path = $file_dir.$_FILES[“uploadfile”][“name”];
if(move_uploaded_file($_FILES[“uploadfile”][“tmp_name”],$file_path)){
$img_dir = “file/”;
$img_path = $img_dir.$_FILES[“uploadfile”][“name”];
$thumnail_path = $img_dir.$thumnail_name;
if(mb_strpos($_FILES[‘uploadfile’][‘type’],’jpeg’)){
$gdimg_in = imagecreatefromjpeg($file_path); //ファイルのイメージIDを取得する
$ix = imagesx($gdimg_in); //画像ファイルの横幅を取得する
$iy = imagesy($gdimg_in); //画像ファイルの高さを取得する
$ox = $resizeX; //サイズ変更後の横幅
$oy = ($ox*$iy)/$ix; //サイズ変更後の高さを計算する
$gdimg_out = imagecreatetruecolor($ox,$oy); //サイズ変更後のイメージIDを作る
imagecopyresized($gdimg_out,$gdimg_in,0,0,0,0,$ox,$oy,$ix,$iy); //画像の複製とサイズ変更を行う
imagejpeg($gdimg_out,$thumnail_path); //画像をファイルに保存する
imagedestroy($gdimg_out); //メモリを解放する
imagedestroy($gdimg_in); //メモリを解放する
$size = getimagesize($file_path);
$size2 = getimagesize($thumnail_path);
?>
ファイルアップロードを完了しました。<br />
<img src=”<?php echo $img_path?>” <?php echo $size[3]?>>
<img src=”<?php echo $thumnail_path?>” <?php echo $size2[3]?>><br />
<?php echo $_POST[“comment”] ?>
<?php
}else{
print “JPEG形式の画像をアップロードしてください<br />”;
}
}else{
print “正常にアップロード処理されませんでした。”;
}
?>