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 自写函数代码 获取关键字 去超链接
Feb 08 PHP
PHP排序算法的复习和总结
Feb 15 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 PHP
php格式输出文件var_export函数实例
Nov 15 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
May 12 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
php定期拉取数据对比方法实例
Sep 22 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
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
JS查看对象功能代码
2008/04/25 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
python解析文件示例
2014/01/23 Python
Python实现类继承实例
2014/07/04 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
Python接口测试文件上传实例解析
2020/05/22 Python
python归并排序算法过程实例讲解
2020/11/04 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
上课说话检讨书大全
2014/01/22 职场文书
七年级历史教学反思
2014/02/05 职场文书
销售团队激励口号
2014/06/06 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
创建文明城市倡议书
2015/04/28 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
Redis实战高并发之扣减库存项目
2022/04/14 Redis