使用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 缓存函数代码
Aug 27 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
Nov 26 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
PHP基于数组实现的分页函数实例
Aug 20 PHP
学习php设计模式 php实现观察者模式(Observer)
Dec 09 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
Jul 18 PHP
Laravel第三方包报class not found的解决方法
Oct 13 PHP
laravel 创建命令行命令的图文教程
Oct 23 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 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中的实现trim函数代码
2007/03/19 PHP
使用PHP备份MYSQL数据的多种方法
2014/01/15 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
布同自制Python函数帮助查询小工具
2011/03/13 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
python中requests和https使用简单示例
2018/01/18 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
python随机取list中的元素方法
2018/04/08 Python
python操作mysql代码总结
2018/06/01 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
python实现学生信息管理系统源码
2021/02/22 Python
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
电气自动化大学生求职信
2013/10/16 职场文书
应聘美工求职信
2013/11/07 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书