【问题标题】:php fileinfo files upload validation not workingphp fileinfo文件上传验证不起作用
【发布时间】:2018-09-07 21:12:23
【问题描述】:

我正在尝试上传文件并检查上传的文件是否真的是 pdf 文件,所以我求助于 php.ini 中的fileinfo 函数。

问题是代码没有验证任何东西。它将允许上传各种文件,包括病毒。目前,我正在检查文件扩展名,但它不安全,这就是我求助于fileinfo 的原因。有人可以告诉我代码有什么问题吗?我正在运行 php 版本 5.3.5

if (function_exists('finfo_open')) {
    $mime = finfo_open(FILEINFO_MIME_TYPE);
    $mime_type = finfo_file($mime, $_FILES['myfile']['tmp_name']);
    if ($mime_type == "application/pdf") {
        echo "file is pdf";
    } else {
        echo "file is not pdf";
        finfo_close($mime);
        exit();
    }
}

【问题讨论】:

  • 回显$mime_type 值,看看你会得到什么。
  • 如果 echo $mime_type 它不会显示或回显任何内容。
  • 您是否随时收到错误消息?
  • 完全没有错误信息
  • 如果执行此代码时没有显示任何消息,那么 if (function_exists('finfo_open')) 会返回 false。如果你删除它会发生什么?

标签: php


【解决方案1】:

问题与在 php.ini 文件中启用 fileinfo.dll 有关。

我去了 php.ini 并取消注释/删除 ;extension=php_fileinfo.dll 之前的分号

所以它看起来像下面 extension=php_fileinfo.dll

然后我保存并重新启动 apche 并看到它现在可以工作了。谢谢

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 2023-04-06
    • 2017-11-17
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2017-08-01
    相关资源
    最近更新 更多