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 相关文章推荐
编译问题
Oct 09 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
Jun 18 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
smarty缓存用法分析
Dec 16 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
Jan 08 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
PHP类的特性实例分析
Sep 28 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 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写入数据库类代码分享
2011/07/26 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
YII路径的用法总结
2014/07/09 PHP
C#静态方法与非静态方法实例分析
2014/09/22 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
Python对列表排序的方法实例分析
2015/05/16 Python
python3设计模式之简单工厂模式
2017/10/17 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
PyQt5实现拖放功能
2018/04/25 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
求职信范文怎么写
2015/03/19 职场文书
出国留学英文自荐信
2015/03/25 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
学习十八大的感悟
2015/08/11 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
pytorch中的 .view()函数的用法介绍
2022/03/17 Python
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python