【问题标题】:What's the best way/practice to get the extension of a uploaded file in PHP [duplicate]在PHP中获取上传文件扩展名的最佳方法/实践是什么[重复]
【发布时间】:2011-06-03 06:06:15
【问题描述】:

我有一个允许用户上传文件的表单,但是我需要获得我能够获得的文件扩展名,但不确定我是否使用了最有效的解决方案

我可以通过以下方式获得它

$fileInfo = pathinfo($_FILES['File']['name']);
echo $fileInfo['extension'];

$ext = end(explode('.',$_FILES['File']['name']));
echo $ext;

哪种方法最好使用,或者是否有更好的解决方案可以获得扩展?

【问题讨论】:

    标签: php


    【解决方案1】:

    pathinfo($_FILES['File']['name'], PATHINFO_EXTENSION)

    • 尽可能使用内置函数(同时@Sarfraz 所说的),
    • 仅提取所需信息 (options = PATHINFO_EXTENSION)

    【讨论】:

    • 但不要相信输入!不允许执行上传的文件,最好将上传的文件移到DocumentRoot之外,这样即使是可执行的,用户也找不到。
    【解决方案2】:

    更好的方法 - fileinfo extension with PHP >=5.3

    PS:不信任文件扩展名,任何用户都可以任意重命名文件扩展名

    【讨论】:

    • 很好的解决方案,但对我来说这行不通,因为我的开发环境当前运行的是 PHP 5.1.6
    • @Roland - 抛弃 5.1.* ,甚至不再支持 5.2.* ...是时候寻找 5.3 了,但有时升级太麻烦了
    • 我同意你的观点,但很遗憾我不是机器的所有者,否则我会升级。
    【解决方案3】:

    第一个(使用pathinfo)更好,原因很明显。使用内置函数实现功能,而不是重新创建它:)

    【讨论】:

      猜你喜欢
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2014-01-16
      • 2010-11-16
      相关资源
      最近更新 更多