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


Posted in PHP onSeptember 10, 2015

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

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上传功能集后缀名判断和随机命名(强力推荐),希望大家喜欢。

PHP 相关文章推荐
PHP与SQL注入攻击[一]
Apr 17 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
php实现将上传word文件转为html的方法
Jun 03 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
深入浅出讲解:php的socket通信原理
Dec 03 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 PHP
ubuntu下配置nginx+php+mysql详解
Sep 10 #PHP
ThinkPHP函数详解之M方法和R方法
Sep 10 #PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 #PHP
四个常见html网页乱码问题及解决办法
Sep 08 #PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 #PHP
php验证码实现代码(3种)
Sep 07 #PHP
PHP Web木马扫描器代码分享
Sep 06 #PHP
You might like
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP下10件你也许并不了解的事情
2008/09/11 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
Javascript原型链和原型的一个误区
2014/10/22 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
Python中实现三目运算的方法
2015/06/21 Python
浅谈Python单向链表的实现
2015/12/24 Python
Flask数据库迁移简单介绍
2017/10/24 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python多线程并发及测试框架案例
2019/10/15 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
美国眼镜网:GlassesUSA
2017/09/07 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
党员干部承诺书
2014/03/25 职场文书
优秀家长事迹材料
2014/05/17 职场文书
企业法人代表证明书
2015/06/18 职场文书
护士业务学习心得体会
2016/01/25 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python