【问题标题】:PHP different file type of same file in different browserPHP在不同浏览器中相同文件的不同文件类型
【发布时间】:2011-09-14 10:59:39
【问题描述】:

我正在用 PHP 开发视频文件的应用程序。我正在提供仅接收 .MP4 文件的服务器端验证 ($_FILES['file']['type'])。

如果我从 Firefox 浏览器上传任何 MP4 文件,则文件类型为“application/octet-stream”,如果我从 Google Chrome 上传相同文件,则文件类型为 'video/mp4'

如果我从 Firefox 上传任何 FLV 文件,那么文件类型也是 'application/octet-stream' 那么我如何识别该视频的文件类型?

【问题讨论】:

  • 通过扩展...或使用 $_FILES['file']['tmp_name'] 上的 php.net/manual/en/function.finfo-file.php 函数
  • 永远不要相信浏览器发送的type。将 exe 文件的 mime 类型伪装成其他东西是相当容易的。

标签: php file-upload


【解决方案1】:

您是否尝试过使用文件信息库? finfo_file()

http://www.php.net/manual/en/function.finfo-file.php

它有一个姐妹功能mime_content_type()

http://www.php.net/manual/en/function.mime-content-type.php

【讨论】:

  • 使用该功能,它应该以“video/mp4”的形式返回,但只有在上传后才可用。
  • 哦,如果您在安装时无法访问该库(或它不可用),这可能很有用:stackoverflow.com/questions/652002/detecting-mime-type-in-php
  • "但它只有在上传后才可用" ...一旦您可以访问 $_FILES var,该文件已经在服务器上的临时位置;)
  • 是的,我只是为他澄清。 =) 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-06
  • 2013-08-23
  • 2020-06-12
  • 1970-01-01
  • 2019-04-15
相关资源
最近更新 更多