【问题标题】:PHP 7 Mime and PDF validationPHP 7 Mime 和 PDF 验证
【发布时间】:2019-09-10 02:55:25
【问题描述】:

这在 PHP 5 中有效,但现在不是:

if (function_exists('finfo_open')) {
  $mime = finfo_open(FILEINFO_MIME_TYPE);
  $mime_type = finfo_file($mime, "FILE-PATH");
  if($mime_type == array("application/pdf", "image/jpeg", "image/png"))
    echo "file is pdf";
  else
    echo "file is not pdf";
  finfo_close($mime);
}

【问题讨论】:

  • @Jax297 - 我的问题是为什么现在不行?哪些方面需要改变?您的链接已有七年历史了。
  • if( in_array($mime_type, array("application/pdf", "image/jpeg", "image/png"))) echo "文件是 pdf"; else echo "文件不是 pdf";
  • @Jax297 - 仍然得到“文件不是 pdf”。

标签: php pdf mime


【解决方案1】:

您将字符串与数组进行了比较,这是正确的代码:

if (function_exists('finfo_open')) {
  $mime = finfo_open(FILEINFO_MIME_TYPE);
  if (in_array(finfo_file($mime, 'FILE-PATH'), array('application/pdf', 'image/jpeg', 'image/png')))
    echo 'file is pdf';
  else
    echo 'file is not pdf';
  finfo_close($mime);
}

【讨论】:

  • 我不断收到“文件不是 pdf”。是什么赋予了? mime 命名法最近有变化吗?
  • 刚刚在 PHP 7.2 和 Windows 10 上试过,对我有用。尝试 var_dump() finfo_file() 的结果。如果您使用的是 Linux,您还可以考虑查看您的 /etc/mime.types
  • 降级到 5.6.4,现在它就像一个魅力。
猜你喜欢
  • 2016-06-12
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 2013-01-05
  • 2012-10-24
  • 2016-12-28
相关资源
最近更新 更多