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中获取url与物理路径的总结
Jun 21 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
PHP进程通信基础之信号
Feb 19 PHP
详解php中的implements 使用
Jun 13 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
PHP实现的数组和XML文件相互转换功能示例
Mar 15 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 PHP
基于php伪静态的实现方法解析
Jul 31 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中stdClass的用法分析
2015/02/27 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
js 函数性能比较方法
2020/08/24 Javascript
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
Python容器类型公共方法总结
2020/08/19 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
会计专业毕业生自我评价
2013/09/25 职场文书
初三化学教学反思
2014/01/23 职场文书
学生个人自我鉴定
2014/03/26 职场文书
户籍证明模板
2014/09/28 职场文书
2014年党委工作总结
2014/11/22 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
Java 异步任务计算FutureTask
2022/04/28 Java/Android