国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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ù)組或字符串的形式返回關于文件路徑的信息。
$ftype = $pinfo['extension'];  //"extension"在PHP.INI文件里面 因為我們要用到GD庫
$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("不支持的文件類型");
      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

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

$max_file_size=2000000;     //上傳文件大小限制, 單位BYTE
$destination_folder="uploadimg/"; //上傳文件路徑,默認本地路徑
$watermark=1;      //是否附加水印(1為加水印,其他為不加水印);
$watertype=1;      //水印類型(1為文字,2為圖片)
$waterposition=1;     //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中);
$waterstring = "";  //水印字符串
$waterimg="";    //水印圖片
$imgpreview=1;      //是否生成預覽圖(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>
  允許上傳的文件類型為:<?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))
    //檢查文件類型
  {
    echo "文件類型不符!".$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ù)組或字符串的形式返回關于文件路徑的信息。
  $ftype = $pinfo['extension'];  //"extension"在PHP.INI文件里面 因為我們要用到GD庫
  $destination = $destination_folder.time().".".$ftype;
  if (file_exists($destination) && $overwrite != true)  //判斷是否存在同名文件
  {
    echo "同名文件已經(jīng)存在了";
    exit;
  }
  if(!move_uploaded_file ($filename, $destination))
  {
    echo "移動文件出錯";
    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 " 長度:".$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>


Continuing Learning
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php //上傳文件類型列表 $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/gif', 'image/bmp', ); $max_file_size=2000000; //上傳文件大小限制, 單位BYTE $destination_folder="uploadimg/"; //上傳文件路徑,默認本地路徑 $watermark=1; //是否附加水印(1為加水印,其他為不加水印); $watertype=1; //水印類型(1為文字,2為圖片) $waterposition=1; //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中); $waterstring = ""; //水印字符串 $waterimg=""; //水印圖片 $imgpreview=1; //是否生成預覽圖(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> 允許上傳的文件類型為:<?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)) //檢查文件類型 { echo "文件類型不符!".$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ù)組或字符串的形式返回關于文件路徑的信息。 $ftype = $pinfo['extension']; //"extension"在PHP.INI文件里面 因為我們要用到GD庫 $destination = $destination_folder.time().".".$ftype; if (file_exists($destination) && $overwrite != true) //判斷是否存在同名文件 { echo "同名文件已經(jīng)存在了"; exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移動文件出錯"; 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 " 長度:".$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>
submitReset Code