通过php验证没有扩展名的xls文件

Posted

技术标签:

【中文标题】通过php验证没有扩展名的xls文件【英文标题】:validate xls file without extension through php 【发布时间】:2016-10-26 18:10:12 【问题描述】:

我有一个用于输入文件的 html 表单,并且 php 通过扩展名 .xls 验证输入的文件是否是 xls 文件! 现在,如果用户将图像或脚本文件重命名为 abc.jpeg 为 abc.xsl,则该文件不会被 php 代码验证!无论扩展名如何,我如何验证它是否真的是一个 xls 文件? 用于验证的php代码

if(in_array($file_ext,$expensions)=== false)

         echo "extension not allowed, please choose a .xls file.";
     exit();
    

【问题讨论】:

如果您希望这样,您必须根据格式读取文件,然后您必须进行验证。表示如果 xls 文件然后检查内容,如果它是图像检查像素,如果 doc 文件获取它的内容并验证。 ***.com/questions/23287341/…? @MisterHenson 谢谢这个链接帮助很大 【参考方案1】:

建议您使用返回文件的 MIME 内容类型的mime_content_type,而不是使用文件扩展名。查看链接http://php.net/manual/en/function.mime-content-type.php了解更多信息。

您可以准备一个包含所有允许的 MIME 类型/文件类型的数组,然后使用函数 mime_content_type 检查您上传文件的 MIME 内容类型。

echo mime_content_type('test.php'); // 返回文本/纯文本

这将帮助您的代码在跨平台(其他操作系统兼容性)问题中验证文件扩展名/文件类型。

【讨论】:

以上是关于通过php验证没有扩展名的xls文件的主要内容,如果未能解决你的问题,请参考以下文章

将 xls 转换为 xlsx 并删除旧文件

尝试打开文件xls格式与文件扩展名不一致怎么办

Excel文件的扩展名为啥是xls

文件后缀名files如何改为xls

电脑右键新建菜单新建的excel文件打开时显示文件扩展名冲突

获取文件类型不使用文件扩展名 c#