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实现单链表的实例代码
Mar 22 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
Redis构建分布式锁
Mar 28 PHP
php 调用ffmpeg获取视频信息的简单实现
Apr 03 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
php array 转json及java 转换 json数据格式操作示例
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
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
js使用递归解析xml
2014/12/12 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
2014离婚协议书范文
2014/09/10 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL