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 htmlentities和htmlspecialchars 的区别
Aug 18 PHP
在JavaScript中调用php程序
Mar 09 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
php牛逼的面试题分享
Jan 18 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
PHP实现计算器小功能
Aug 28 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封装分页函数实现文本分页和数字分页
2014/10/23 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
CentOS安装php v8js教程
2015/02/26 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
Javascript Objects详解
2014/09/04 Javascript
jQuery的框架介绍
2016/05/11 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
Pycharm连接远程服务器并实现远程调试的实现
2019/08/02 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python字符串格式化输出代码实例
2019/11/22 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
Python中的全局变量如何理解
2020/06/04 Python
matplotlib更改窗口图标的方法示例
2021/02/03 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
Haggar官网:美国男装品牌
2020/02/16 全球购物
公司市场专员岗位职责
2014/06/29 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
Win11软件图标固定到任务栏
2022/04/19 数码科技