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知识收集
Aug 20 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
深入解析PHP的Yii框架中的event事件机制
Mar 17 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP树形结构tree类用法示例
Feb 01 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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 jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
php自定义session示例分享
2014/04/22 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
javascript 获取表单file全路径
2009/12/31 Javascript
Js四则运算函数代码
2012/07/21 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
详解小白之KMP算法及python实现
2019/04/04 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
Shell编程面试题
2016/05/29 面试题
财务会计专业求职信范文
2013/12/31 职场文书
运动会广播稿60字
2014/01/15 职场文书
初三家长会邀请函
2014/01/18 职场文书
老干部工作先进事迹
2014/08/17 职场文书
教师党员整改措施
2014/10/24 职场文书
离职报告格式
2014/11/04 职场文书
优秀团队申报材料
2014/12/26 职场文书
家属答谢词
2015/01/05 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
KVM基础命令详解
2022/04/30 Servers