【问题标题】:Check if a file extension is not changed before uploading in php在php中上传之前检查文件扩展名是否未更改
【发布时间】:2015-04-21 03:41:18
【问题描述】:

我只需要上传 pdf 类型的文件。我们可以通过不同的方式检查文件的扩展名,例如 $_FILES['files']['type'] 或 pathinfo() 函数。但是如果有人在上传之前更改了文件的扩展名怎么办。 例子。 如果有人将 png 文件从 image.png 更改为 image.pdf。那么如何检查上传的文件不是pdf呢?

【问题讨论】:

标签: php file file-upload upload extension-methods


【解决方案1】:

试试这个

echo mime_content_type('form.pdf');

http://php.net/manual/es/function.mime-content-type.php查看更多信息

编辑:

我将一个 .zip 文件重命名为 .pdf 文件

if(isset($_FILES['archivo']) && is_uploaded_file($_FILES['archivo']['tmp_name']))
{

 $archivo = $_FILES['archivo']['tmp_name'];
 $archivo_name = $_FILES['archivo']['name'];

echo mime_content_type($archivo);

 move_uploaded_file($archivo, "upload/" . $archivo_name);

}

上面的脚本打印应用程序/zip

然后你可以这样做:

if (mime_content_type($_FILES['archivo']['tmp_name']) == 'application/pdf') {
//ok is a pdf
}

【讨论】:

  • 有更好的方法吗?因为这显示了一些 pdf 的文本/纯文本!
  • 正如手册所说,您可以使用 $_FILES['userfile']['type'] 但是这种 mime 类型在 PHP 端没有被检查,因此不要认为它的价值是理所当然的。阅读更多php.net/manual/en/features.file-upload.post-method.php
猜你喜欢
  • 2013-01-28
  • 2021-12-23
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 2017-03-12
  • 2011-04-04
  • 2017-02-23
相关资源
最近更新 更多