<?php
//===============================================================================
//   ■■ MASAGO 離れPHP島        :GDライブラリ(3) ■■
//        Class        :php20040218.php
//        Copyright    :masago.kir.jp
//        Made by        :Masago
//        Date        :2004/02/18
//        Last Update    :2004/02/18
//        
//        Comment        :大きさを変更しようっ
//        
//        Caution        :GDライブラリ[3]
//==============================================================================
//----------------------------------------------- 
// □ 変数の初期化
//-----------------------------------------------
$error        "";        //エラー
//======================================================
// ■ POSTされたときはログイン情報をチェック ■
//======================================================
if ($_SERVER["REQUEST_METHOD"]=="POST"){
    
//------------------------------------------------------
    // □ 戻るボタン押下
    //------------------------------------------------------
    
if (isset($_POST["submit"])){
        
//------------------------------------------------------
        // □ POSTされた名前を変数に保存
        //------------------------------------------------------
        
$img1        $_FILES['img1'];            //アップロードファイルオブジェクト
        
$img1tmp    $_FILES['img1']['tmp_name'];        //tmpファイル名
        
$img1name    $_FILES['img1']['name'];        //ローカルファイル名
        
$img1size    $_FILES['img1']['size'];        //サイズ
        
$img1type    $_FILES['img1']['type'];        //タイプ
        
$cwidth        $_POST['cwidth'];            //変更幅
        
$cheight    $_POST['cheight'];            //変更縦
        
$cwidth      mb_convert_kana($cwidth,"as",EUC);    //半角に
        
$cheight      mb_convert_kana($cheight,"as",EUC);    //半角に

            
if (!ereg("^[0-9]*$",$cwidth)){$error="幅に誤りがあります。";} 
            if (!
ereg("^[0-9]*$",$cheight)){$error="縦に誤りがあります。";} 
        if (
$cwidth>800){$error="幅が大きすぎます";}
        if (
$cheight>600){$error="縦が大きすぎます";}
        if (
$error==""){
            
//------------------------------------------------------
            // ■ アップロード画像チェック
            //------------------------------------------------------
            
$kaku="";
            if (
is_uploaded_file($img1tmp)) {
                if (
$img1type=="image/gif"){
                    
$error="gif画像は操作できません";
                }
                if (
$img1type=="image_png" || $img1type=="image/x-png"){$kaku=".png";}
                if (
$img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
                if (
$kaku==""){$error="アップロード画像に誤りがあります";}
                if (
$kaku!="" && $error==""){
                    
//---------------------------------------
                    // □ 画像のサイズを変更
                    //---------------------------------------
                    
list($width,$height)=getimagesize($img1tmp);
                    
$src=@imagecreatefromjpeg($img1tmp);
                    
$dst=imagecreatetruecolor($cwidth,$cheight);
                    
imagecopyresized($dst,$src,0,0,0,0,$cwidth,$cheight,$width,$height);
                    
$boRtn=imagejpeg($dst,"20040218/" .date("YmdHis") .$kaku);
                    if (
$boRtn){
                        
$error="アップロードに成功しました。";
                    }else{
                        
$error="アップロードに失敗しました。";
                    }
                }else{
                    
$error="ファイルの種類に誤りがあります。";
                }
            }
        }
    }
}else{
    
$cwidth="100";
    
$cheight="100";
}
//======================================================
// ■ H T M L ■
//======================================================
?>
<HTML> 
<HEAD> 
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8">
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<TITLE>2004/02/18 Sample</TITLE> 
</HEAD> 
<BODY BGCOLOR="#ffffff" style="margin:0px" marginwidth="0" marginheight="0">
<FONT SIZE="2">
<A HREF="phpmenu.php">メニューへ</A>&nbsp;&nbsp;
<A HREF="phpsc.php?s=php20040218s.php">このページのソース</A>
<CENTER> 
<BR><BR>
<B>画像をアップロードしてサイズ変更</B><BR><BR>
* jpg,pngのみ有効。ファイルサイズは50Kまで *<BR>
</FONT>
<BR>
<?php
//--------------------------------------------- 
// □ エラーメモリを表示
//---------------------------------------------
if ($error!=""){echo "<FONT COLOR=\"#ff0000\">$error</FONT>";}
?> 
<BR>
<BR>
<?php
//--------------------------------------------- 
// □ フォーム
//---------------------------------------------
?>
<FORM NAME="objform" ACTION="<?php echo $_SERVER['SCRIPT_NAME']; ?>" METHOD="POST" ENCTYPE="multipart/form-data"> 
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="50000">
画像ファイル:<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
幅:<INPUT TYPE="text" NAME="cwidth" SIZE="5" VALUE="<?php echo $cwidth?>">pix<BR>
縦:<INPUT TYPE="text" NAME="cheight" SIZE="5" VALUE="<?php echo $cheight?>">pix<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="アップロード">
</FORM>  
<BR>
<HR WIDTH="600">
<BR>
<?php
//--------------------------------------------- 
// □ アップロードされた画像を表示
//---------------------------------------------
//ファイルを取得
$cnt=0;
$filename=array();
if (
$dir = @opendir("20040218")) {
    while(
$file readdir($dir)) {
        if (!
is_dir($file)){
            
$cnt++;
            
$filename[$cnt]=$file;
        }
    } 
    
closedir($dir);
}
//SORT!!
rsort($filename);
$cnt=0;
?>
<TABLE BORDER="0" WIDTH="600">
<?php
$cnt
=0;
foreach(
$filename as $value){
    
$cnt++;
    if (
$cnt==1){echo "<TR>";}
    echo 
"<TD VALIGN=\"center\" ALIGN=\"center\">\n";
    echo 
"<IMG BORDER=\"0\" SRC=\"20040218/$value\">\n";
    echo 
"</TD>\n";
    if (
$cnt==4){
        echo 
"</TR>\n";
        
$cnt=0;
    }
}
if (
$cnt<4){
    
$cnt=4-$cnt;
    echo 
"<TD COLSPAN=\"$cnt\">&nbsp;</TD>\n";
    echo 
"</TR>\n";
}
?>
</TABLE>
</CENTER>
</BODY> 
</HTML>