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版)
Oct 09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
php win下Socket方式发邮件类
Aug 21 PHP
php正则表达式(regar expression)
Sep 10 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
php生成短网址示例
May 05 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php中strtotime函数用法详解
Nov 15 PHP
PHP开发注意事项总结
Feb 04 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
discuz7 phpMysql操作类
2009/06/21 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
php中require和require_once的区别说明
2014/02/27 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
Python判断变量是否已经定义的方法
2014/08/18 Python
python实现红包裂变算法
2016/02/16 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
文明社区申报材料
2014/08/21 职场文书
关于工作经历的证明书
2014/10/11 职场文书
保洁员岗位职责
2015/02/04 职场文书
怎样写辞职信
2015/02/27 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers