PHP開発-ファイルのアップロード


<?php

/******************************************************************************



    :

$max_file_size  :         ,   BYTE

$destination_folder :       

$watermark   :       (1    ,       );



    :

1.  PHP.INI     "extension=php_gd2.dll"     ;   ,       GD ;

2.  extension_dir =    php_gd2.dll    ;

******************************************************************************/



//        

$uptypes=array(

    'image/jpg',

    'image/jpeg',

    'image/png',

    'image/pjpeg',

    'image/gif',

    'image/bmp',

    'image/x-png'

);



$max_file_size=2000000;     //        ,   BYTE

$destination_folder="uploadimg/"; //      

$watermark=1;      //      (1    ,       );

$watertype=1;      //    (1   ,2   )

$waterposition=1;     //    (1    ,2    ,3    ,4    ,5   );

$waterstring="http://www.hklos.com";  //     

$waterimg="xplore.gif";    //    

$imgpreview=1;      //       (1   ,      );

$imgpreviewsize=1/2;    //     

?>

<!DOCTYPE>

<html>

<head>

<meta charset="utf-8">

<title>ZwelL      </title>



</head>



<body>

<form enctype="multipart/form-data" method="post" name="upform">

      :

  <input name="upfile" type="file">

  <input type="submit" value="  "><br>

            :<?=implode(', ',$uptypes)?>

</form>



<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST')

{

    if (!is_uploaded_file($_FILES["upfile"][tmp_name]))

    //      

    {

         echo "     !";

         exit;

    }



    $file = $_FILES["upfile"];

    if($max_file_size < $file["size"])

    //      

    {

        echo "    !";

        exit;

    }



    if(!in_array($file["type"], $uptypes))

    //      

    {

        echo "      !".$file["type"];

        exit;

    }



    if(!file_exists($destination_folder))

    {

        mkdir($destination_folder);

    }



    $filename=$file["tmp_name"];

    $image_size = getimagesize($filename);

    $pinfo=pathinfo($file["name"]);

    $ftype=$pinfo['extension'];

    $destination = $destination_folder.time().".".$ftype;

    if (file_exists($destination) && $overwrite != true)

    {

        echo "         ";

        exit;

    }



    if(!move_uploaded_file ($filename, $destination))

    {

        echo "      ";

        exit;

    }



    $pinfo=pathinfo($destination);

    $fname=$pinfo[basename];

    echo " <font color=red>      </font><br>   :  <font color=blue>".$destination_folder.$fname."</font><br>";

    echo "   :".$image_size[0];

    echo "   :".$image_size[1];

    echo "<br>   :".$file["size"]." bytes";



    if($watermark==1)

    {

        $iinfo=getimagesize($destination,$iinfo);

        $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);

        $white=imagecolorallocate($nimage,255,255,255);

        $black=imagecolorallocate($nimage,0,0,0);

        $red=imagecolorallocate($nimage,255,0,0);

        imagefill($nimage,0,0,$white);

        switch ($iinfo[2])

        {

            case 1:

            $simage =imagecreatefromgif($destination);

            break;

            case 2:

            $simage =imagecreatefromjpeg($destination);

            break;

            case 3:

            $simage =imagecreatefrompng($destination);

            break;

            case 6:

            $simage =imagecreatefromwbmp($destination);

            break;

            default:

            die("        ");

            exit;

        }



        imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);

        imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);



        switch($watertype)

        {

            case 1:   //      

            imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);

            break;

            case 2:   //     

            $simage1 =imagecreatefromgif("xplore.gif");

            imagecopy($nimage,$simage1,0,0,0,0,85,15);

            imagedestroy($simage1);

            break;

        }



        switch ($iinfo[2])

        {

            case 1:

            //imagegif($nimage, $destination);

            imagejpeg($nimage, $destination);

            break;

            case 2:

            imagejpeg($nimage, $destination);

            break;

            case 3:

            imagepng($nimage, $destination);

            break;

            case 6:

            imagewbmp($nimage, $destination);

            //imagejpeg($nimage, $destination);

            break;

        }



        //       

        imagedestroy($nimage);

        imagedestroy($simage);

    }



    if($imgpreview==1)

    {

    echo "<br>    :<br>";

    echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);

    echo " alt=\"    :\r   :".$destination."\r    :\">";

    }

}

?>

</body>

</html>

ソースネットワークは、どこで見つけたか覚えていませんが、知っていれば、伝言を残してください.ありがとう!