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聊天室技术
Oct 09 PHP
PHP Token(令牌)设计
Mar 15 PHP
php cookie 登录验证示例代码
Mar 16 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
轻松实现php文件上传功能
Feb 17 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
Apr 09 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实现与ASP Banner组件相似的类
2006/10/09 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
用jquery来定位
2007/02/20 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
vue引入swiper插件的使用实例
2017/07/19 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
后勤人员岗位职责
2013/12/17 职场文书
社区禁毒工作方案
2014/06/02 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
盗窃案辩护词
2015/05/21 职场文书
湘江北去观后感
2015/06/15 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers