php专区

 首页 > php专区 > PHP高级 > 文件上传 > PHP 中获取文件扩展名的正确方法 - php文件操作

PHP 中获取文件扩展名的正确方法 - php文件操作

分享到:
【字体:
导读:
          在 PHP 中,如何获取文件扩展名名呢,我们可能会用字符串操作函数进行处理,但下面举的这些方法只是获取了用户的名字后面带 后面的后缀了并不能做安全验证 比如如下代码:echo substr(...

PHP 中获取文件扩展名的正确方法

在 PHP 中,如何获取文件扩展名名呢,我们可能会用字符串操作函数进行处理,但下面举的这些方法只是获取了用户的名字后面带.后面的后缀了并不能做安全验证.

比如如下代码:echo substr(strrchr($file_name,'.'),1);

或者如下代码:echo end(explode(".", $filename));

最正确的方法应该是使用 pathinfo 函数,如:

echo pathinfo($filename, PATHINFO_EXTENSION);

pathinfo 函数支持4种类型的返回:

PATHINFO_DIRNAME – 目录

PATHINFO_BASENAME – 文件名(含扩展名)

PATHINFO_EXTENSION – 扩展名

PATHINFO_FILENAME – 文件名(不含扩展名)

例子代码如下:

  1. function get_extension($filename){ 
  2. return pathinfo($filename,PATHINFO_EXTENSION); 
  3.  
  4. //调用代码如下 
  5. print_r(pathinfo("/testweb/test.txt")); 
  6. ?> 
  7. //以上将输出如下结果: 
  8. Array( 
  9.  [dirname] => /testweb 
  10.  [basename] => test.txt 
  11.  [extension] => txt 

如果要上传的用户最好要加以下面方法处理:

$extension=$upfile['type']; //这个是由upload上传过来的文件信息,代码如下:

  1. switch$extension ) 
  2.    { 
  3.     case 'application/msword'
  4.     $extension ='doc'
  5.     break;
  6.     case 'application/vnd.ms-excel'
  7.     $extension ='xls'
  8.     break
  9.     case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
  10.     $extension ='docx'
  11.     break
  12.     case 'application/vnd.ms-powerpoint'
  13.     $extension ='ppt'
  14.     break
  15.     case 'application/pdf'
  16.     $extension ='pdf'
  17.     break
  18.     case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  19.     $extension ='xlsx'
  20.     break
  21.     default
  22.     die('只允许上传doc,docx,xls,pdf,ppt文件 重新上传'); 
  23.      
  24.    } 
分享到:
PHP获取当前路径和目录的示例 - php文件...
PHP获取当前路径和目录的示例 在php中为我们提供了大量全局变量了我们可以利用它们来帮我们直接获取文件或目录的路么了,下面我找到一篇比较全面的文章加以整理,希望对大家会有帮助. PHP获取目录和的方法通过魔术变量,通过超级全局变量,通过相关函数等等,代码如下: /**   * PHP获...
php遍历读取文件夹/目录图片信息 - php文...
php遍历读取文件夹/目录图片信息 今天帮助一个客户做一上企业网站,发现企业网站做好之后它准备了几百张图片让我上传,这个对于我来讲非常的不想做了,但后来发现可以直接使用程序读取目录然后保存到mysql中就可以解决了. PHP实例代码如下:   script代码如下:   $(function...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……