欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php上传功能集后缀名判断和随机命名(强力推荐)

程序员文章站 2023-01-29 11:57:55
不废话了,具体请看下文代码示例讲解。 form.php

不废话了,具体请看下文代码示例讲解。

form.php

<html>
<head>
  <meta http-equiv="content-type" content="text/html" charset="utf-8">
  <title>upload image</title>
</head>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
  <input type="hidden" name="max_file_seze" value="2000000">
  <input type="file" name="file" value="view">
  <input type="submit" value="upload" name="b1">
</form>
</body>
</html>

upload.php

<?php
include("check.php"); // 引入自定义函数文件
$type = array("jpg", "gif", "bmp", "jpeg", "png");
// 判断上传文件类型
$fileext = strtolower(fileext($_files['file']['name']));
$uploadfilename = random(8);
if(in_array($fileext, $type)){
  $filename = explode(".", $_files['file']['name']);

    if(is_uploaded_file($_files['file']['tmp_name'])){
//    echo $_files['file']['tmp_name'];
    $flag = move_uploaded_file($_files['file']['tmp_name'], "/library/webserver/documents/test/".$uploadfilename.".".$fileext);
    if($flag){
      echo "上传成功!";
    }else{
      echo "error.";
    }
    echo "<a href='javascript:history.go(-1)'>back</a>";
  }
}

check.php

<?php
header("content-type:text/html;charset=utf8");
// 获取文件后缀名函数
function fileext($filename){
  $stemp = strrchr($filename, ".");
  return substr($stemp, 1);
}
function fileext2($filename){
  $stemp = explode(".", $filename);
  return $stemp[count($stemp)-1];
}
// 生成随机文件名函数
function random($length){
  $captchasource = "0123456789abcdefghijklmnopqrstuvwxyz这是一个随机打印输出字符串的例子";
  $captcharesult = "2015"; // 随机数返回值
  $captchasentry = ""; // 随机数中间变量
  for($i=0;$i<$length;$i++){
    $n = rand(0, 35); #strlen($captchasource));
    if($n >= 36){
      $n = 36 + ceil(($n-36)/3) * 3;
      $captcharesult .= substr($captchasource, $n, 3);
    }else{
      $captcharesult .= substr($captchasource, $n, 1);
    }
  }
  return $captcharesult;
}
?>

将三个文件整合成一个:

<?php
// 获取文件后缀名函数
function fileext($filename){
  $stemp = strrchr($filename, ".");
  return substr($stemp, 1);
}
function fileext2($filename){
  $stemp = explode(".", $filename);
  return $stemp[count($stemp)-1];
}
// 生成随机文件名函数
function random($length){
  $captchasource = "0123456789abcdefghijklmnopqrstuvwxyz这是一个随机打印输出字符串的例子";
  $captcharesult = "2015"; // 随机数返回值
  $captchasentry = ""; // 随机数中间变量
  for($i=0;$i<$length;$i++){
    $n = rand(0, 35); #strlen($captchasource));
    if($n >= 36){
      $n = 36 + ceil(($n-36)/3) * 3;
      $captcharesult .= substr($captchasource, $n, 3);
    }else{
      $captcharesult .= substr($captchasource, $n, 1);
    }
  }
  return $captcharesult;
}
$type = array("jpg", "gif", "bmp", "jpeg", "png");
// 判断上传文件类型
$fileext = strtolower(fileext($_files['file']['name']));
$uploadfilename = random(8);
if(in_array($fileext, $type)){
  $filename = explode(".", $_files['file']['name']);
  if(is_uploaded_file($_files['file']['tmp_name'])){
//    echo $_files['file']['tmp_name'];
    $flag = move_uploaded_file($_files['file']['tmp_name'], "/library/webserver/documents/test/".$uploadfilename.".".$fileext);
    if($flag){
      echo "上传成功!";
    }else{
      echo "error.";
    }
    echo "<a href='javascript:history.go(-1)'>back</a>";
  }
}
?>
<html>
<head>
  <meta http-equiv="content-type" content="text/html" charset="utf-8">
  <title>upload image</title>
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
  <input type="hidden" name="max_file_seze" value="2000000">
  <input type="file" name="file" value="view">
  <input type="submit" value="upload" name="b1">
</form>
</body>
</html>

以上内容就是给大家讲解的php上传功能集后缀名判断和随机命名(强力推荐),希望大家喜欢。