在PHP中获取上传文件扩展名的最佳方法/实践是啥[重复]
Posted
技术标签:
【中文标题】在PHP中获取上传文件扩展名的最佳方法/实践是啥[重复]【英文标题】: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;
哪种方法最好使用,或者是否有更好的解决方案可以获得扩展?
【问题讨论】:
【参考方案1】:pathinfo($_FILES['File']['name'], PATHINFO_EXTENSION)
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
)更好,原因很明显。使用内置函数实现功能,而不是重新创建它:)
【讨论】:
以上是关于在PHP中获取上传文件扩展名的最佳方法/实践是啥[重复]的主要内容,如果未能解决你的问题,请参考以下文章