使用PHP接受文件并获得其后缀名的方法


Posted in PHP onAugust 05, 2015

HTML的form表单
用html的表单模拟一个文件上传的post请求,代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  <html> 
  <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  <title>File Upload</title> 
  </head> 
  <body> 
   
  <form enctype="multipart/form-data" action="test.php" method="POST"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
    Send this File:<input name="userfile" type="file"/> 
    <input type="submit" value="Send File" /> 
  </form> 
   
   
  </body> 
  </html>

注意:

要确保文件上传表单的属性是 enctype="multipart/form-data",否则文件上传不了

PHP
首先,需要解释一下PHP的全局变量$_FILES,此数组包含了所有上传的文件信息

  • $_FILE['userfile']['name'] : 客户端机器文件的原名称
  • $_FILE['userfile']['type'] : 文件的MIME类型
  • $_FILE['userfile']['size'] : 已上传的文件大小
  • $_FILE['userfile']['tmpname'] : 文件被上传后在服务器存储的临时文件名
  • $_FILE['userfile']['error'] : 和该文件上传的错误代码

思路
1、生成40位的随机字符串作为文件名
2、根据文件是图片还是语音转存到不同的文件位置
3、暂时不做文件大小和文件类型的校验

 

function processFile($files, $type) { 
    $uploadName = null; 
    foreach ($files as $name => $value) { 
      $originalName = $value['name']; 
      $arr = explode(".", $originalName); 
      $postfix = $arr[count($arr) - 1]; 
      $tmpPath = $value['tmp_name']; 
      $tmpType = $value['type']; 
      $tmpSize = $value['size']; 
    } 
     
    $newname = EhlStaticFunction::generateRandomStr(40).".".$postfix; 
     
    switch ($type) { 
      case 1 :  
        // 处理声音文件 
        $destination = VIDEOUPLOADDIR.$newname; 
        break; 
      case 2 : 
        // 处理图像文件 
        $destination = IMAGEUPLOADDIR.$newname; 
        break; 
    } 
     
    move_uploaded_file($tmpPath, $destination); 
  }

而获取所上传文件的后缀名则可以使用一下代码:

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title></title>
  <meta name="keywords" content=" keywords" />
  <meta name="description" content="description" />
</head>
<body>
  <form method="post" action="" enctype="multipart/form-data">
  <input type="file" name="upfile" size="20" />
  <input type="submit" name="submit" value="submit" />
  </form>
</body>
</html>

PHP

<?PHP
  if(isset($_POST['submit'])) {
    $string = strrev($_FILES['upfile']['name']);
    $array = explode('.',$string);
    echo $array[0];
  }  
?>

结果示例:

使用PHP接受文件并获得其后缀名的方法

PHP 相关文章推荐
在PHP中使用灵巧的体系结构
Oct 09 PHP
Discuz 6.0+ 批量注册用户名
Sep 13 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
php调用C代码的实现方法
Mar 11 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
ThinkPHP之R方法实例详解
Jun 20 PHP
完善CodeIgniter在IDE中代码提示功能的方法
Jul 19 PHP
php include类文件超时问题处理
Feb 06 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
php链表用法实例分析
Jul 09 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
PHP合并discuz用户脚本的方法
Aug 04 #PHP
PHP-FPM之Chroot执行环境详解
Aug 03 #PHP
织梦sitemap地图实时推送给百度的教程
Aug 03 #PHP
php生成图片验证码的实例讲解
Aug 03 #PHP
android上传图片到PHP的过程详解
Aug 03 #PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 #PHP
php基于session实现数据库交互的类实例
Aug 03 #PHP
You might like
php中3种方法删除字符串中间的空格
2014/03/10 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
网页图片延时加载的js代码
2010/04/22 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
Python封装shell命令实例分析
2015/05/05 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
python处理“
2019/06/10 Python
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
深入分析python 排序
2020/08/24 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
python 高阶函数简单介绍
2021/02/19 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
优秀干部获奖感言
2014/01/31 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS