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 飞信好友免费短信API接口开源版
Jul 22 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
php中通过curl模拟登陆discuz论坛的实现代码
Feb 16 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
php实现比较全的数据库操作类
Jun 18 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 PHP
实例化php类时传参的方法分析
Jun 05 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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 中的批处理的实现
2007/06/14 PHP
php图片验证码代码
2008/03/27 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
ASP SQL防注入的方法
2008/12/25 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
javascript每日必学之封装
2016/02/23 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
Python中的pass语句使用方法讲解
2015/05/14 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
成人大专自我鉴定范文
2013/10/19 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
小学安全工作总结2015
2015/05/18 职场文书
总经理年会致辞
2015/07/29 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
如何解决php-fpm启动不了问题
2021/11/17 PHP
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB