亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Simple file upload to local file for PHP development (2)

In the previous section, we explained how to use the <form> form to upload files, and created an HTML form page

and provided some restrictions on uploading files.

In this section we use PHP code to perform if judgments on various conditions

First we must determine the value passing method:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
 //$_SERVER['REQUEST_METHOD']提交表單的方式,這里用POST提交。
?>

Judge whether the image exists in the directory:

<?php
if (!is_uploaded_file($_FILES["upfile"]["tmp_name"]))
  //判斷是否存在文件
{
  echo "圖片不存在!";
  exit;
}
?>

$_FILES["upfile"]["tmp_name"] is the original path name of the image.

Determine the size of the uploaded file:

<?
$file = $_FILES["upfile"];
if($max_file_size < $file["size"])
  //檢查文件大小
{
  echo "文件太大!";
  exit;
}
?>

$_FILES["upfile"]["size"] is the size of the uploaded file, expressed here in bytes.

Determine whether there are files with the same name in the same directory:

<?php
if(!file_exists($destination_folder)) //file_exists() 函數(shù)檢查文件或目錄是否存在。
{
  mkdir($destination_folder);  //mkdir() 函數(shù)創(chuàng)建目錄。
}

$filename = $file["tmp_name"];
$image_size = getimagesize($filename);
$pinfo = pathinfo($file["name"]); //pathinfo() 函數(shù)以數(shù)組或字符串的形式返回關(guān)于文件路徑的信息。
$ftype = $pinfo['extension'];  //"extension"在PHP.INI文件里面 因?yàn)槲覀円玫紾D庫(kù)
$destination = $destination_folder.time().".".$ftype;

if (file_exists($destination) && $overwrite != true)  //判斷是否存在同名文件
{
  echo "同名文件已經(jīng)存在了";
  exit;
}
?>


Here we add a section to determine whether to add a watermark for everyone’s benefit Study reference.

<?php

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("不支持的文件類(lèi)型");
      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);
}
?>

Complete example code:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php

//上傳文件類(lèi)型列表
$uptypes=array(
  'image/jpg',
  'image/jpeg',
  'image/png',
  'image/gif',
  'image/bmp',
);

$max_file_size=2000000;     //上傳文件大小限制, 單位BYTE
$destination_folder="uploadimg/"; //上傳文件路徑,默認(rèn)本地路徑
$watermark=1;      //是否附加水印(1為加水印,其他為不加水印);
$watertype=1;      //水印類(lèi)型(1為文字,2為圖片)
$waterposition=1;     //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中);
$waterstring = "";  //水印字符串
$waterimg="";    //水印圖片
$imgpreview=1;      //是否生成預(yù)覽圖(1為生成,其他為不生成);
$imgpreviewsize=1/2;    //縮略圖比例
?>
<html>
<head>
  <meta charset="utf-8">
  <title>圖片上傳</title>
  <style type="text/css">
    <!--
    body
    {
      font-size: 16px;
    }
    input
    {
      background-color: #66CCFF;
      border: 1px inset #CCCCCC;
    }
    -->
  </style>
</head>
<body>
<form enctype="multipart/form-data" method="post" name="upform">
  上傳文件:
  <input name="upfile" type="file">
  <input type="submit" value="上傳"><br>
  允許上傳的文件類(lèi)型為:<?php echo implode(', ',$uptypes);?>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')  //$_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))
    //檢查文件類(lèi)型
  {
    echo "文件類(lèi)型不符!".$file["type"];
    exit;
  }
  if(!file_exists($destination_folder)) //file_exists() 函數(shù)檢查文件或目錄是否存在。
  {
    mkdir($destination_folder);  //mkdir() 函數(shù)創(chuàng)建目錄。
  }
  $filename = $file["tmp_name"];
  $image_size = getimagesize($filename);
  $pinfo = pathinfo($file["name"]); //pathinfo() 函數(shù)以數(shù)組或字符串的形式返回關(guān)于文件路徑的信息。
  $ftype = $pinfo['extension'];  //"extension"在PHP.INI文件里面 因?yàn)槲覀円玫紾D庫(kù)
  $destination = $destination_folder.time().".".$ftype;
  if (file_exists($destination) && $overwrite != true)  //判斷是否存在同名文件
  {
    echo "同名文件已經(jīng)存在了";
    exit;
  }
  if(!move_uploaded_file ($filename, $destination))
  {
    echo "移動(dòng)文件出錯(cuò)";
    exit;
  }
  $pinfo = pathinfo($destination);
  $fname = $pinfo["basename"];
  echo " <font color=red>已經(jīng)成功上傳</font><br>文件名:  <font color=blue>".$destination_folder.$fname."</font><br>";
  echo " 寬度:".$image_size[0];
  echo " 長(zhǎng)度:".$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("不支持的文件類(lèi)型");
        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)  //是否預(yù)覽圖片
  {
    echo "<br>圖片預(yù)覽:<br>";
    echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);
    echo " alt=\"圖片預(yù)覽:\r文件名:".$destination."\r上傳時(shí)間:\">";
  }
}
?>
</body>
</html>


Continuing Learning
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php //上傳文件類(lèi)型列表 $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'image/bmp', ); $max_file_size=2000000; //上傳文件大小限制, 單位BYTE $destination_folder="uploadimg/"; //上傳文件路徑,默認(rèn)本地路徑 $watermark=1; //是否附加水印(1為加水印,其他為不加水印); $watertype=1; //水印類(lèi)型(1為文字,2為圖片) $waterposition=1; //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中); $waterstring = ""; //水印字符串 $waterimg=""; //水印圖片 $imgpreview=1; //是否生成預(yù)覽圖(1為生成,其他為不生成); $imgpreviewsize=1/2; //縮略圖比例 ?> <html> <head> <meta charset="utf-8"> <title>圖片上傳</title> <style type="text/css"> <!-- body { font-size: 16px; } input { background-color: #66CCFF; border: 1px inset #CCCCCC; } --> </style> </head> <body> <form enctype="multipart/form-data" method="post" name="upform"> 上傳文件: <input name="upfile" type="file"> <input type="submit" value="上傳"><br> 允許上傳的文件類(lèi)型為:<?php echo implode(', ',$uptypes);?> </form> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') //$_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)) //檢查文件類(lèi)型 { echo "文件類(lèi)型不符!".$file["type"]; exit; } if(!file_exists($destination_folder)) //file_exists() 函數(shù)檢查文件或目錄是否存在。 { mkdir($destination_folder); //mkdir() 函數(shù)創(chuàng)建目錄。 } $filename = $file["tmp_name"]; $image_size = getimagesize($filename); $pinfo = pathinfo($file["name"]); //pathinfo() 函數(shù)以數(shù)組或字符串的形式返回關(guān)于文件路徑的信息。 $ftype = $pinfo['extension']; //"extension"在PHP.INI文件里面 因?yàn)槲覀円玫紾D庫(kù) $destination = $destination_folder.time().".".$ftype; if (file_exists($destination) && $overwrite != true) //判斷是否存在同名文件 { echo "同名文件已經(jīng)存在了"; exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移動(dòng)文件出錯(cuò)"; exit; } $pinfo = pathinfo($destination); $fname = $pinfo["basename"]; echo " <font color=red>已經(jīng)成功上傳</font><br>文件名: <font color=blue>".$destination_folder.$fname."</font><br>"; echo " 寬度:".$image_size[0]; echo " 長(zhǎng)度:".$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("不支持的文件類(lèi)型"); 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) //是否預(yù)覽圖片 { echo "<br>圖片預(yù)覽:<br>"; echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); echo " alt=\"圖片預(yù)覽:\r文件名:".$destination."\r上傳時(shí)間:\">"; } } ?> </body> </html>
submitReset Code