go文件服务器mimetype,如何使用MIME验证文件?

我想使用php验证服务器中的文件类型。现在,我通过检查文件的文件扩展名类型来验证它。这可以罚款,但问题是,这不是最好的方式来验证文件作为一个用户的一个改变,让说一个文本文件到一个jpeg,仍然能够上传。

所以我想做的是添加另一个验证方法,我还想使用php检查文件的mime类型,以识别文件是图像、视频还是音频。

所以我的问题是它是如何编码的,以便我可以在php中使用mime类型来验证一个文件?另外,如果我有一个非常大的文件,是否需要很长的时间才能启动mime验证,还是直接验证?

下面是我目前为image编写的代码,它仅在使用php代码检查文件类型时使用:<?php

if ((($_FILES["file"]["type"] == "image/gif")

|| ($_FILES["file"]["type"] == "image/jpeg")

|| ($_FILES["file"]["type"] == "image/pjpeg"))

{

if ($_FILES["file"]["error"] > 0)

{

echo "Error: " . $_FILES["file"]["error"] . "
";

}

else

{

echo "Upload: " . $_FILES["file"]["name"] . "
";

echo "Type: " . $_FILES["file"]["type"] . "
";

}

}

else

{

echo "Invalid file";

}

?>

最佳答案:

mime类型查找通常非常快,在php中,您可以使用finfo扩展来完成它。例子:$finfo = finfo_open(FILEINFO_MIME_TYPE);

$mimetype = finfo_file($finfo, '/path/to/file.jpg'); // image/jpeg

finfo_close($finfo);

此外,您不应该依赖type超全局的$_FILES索引,因为该值可以被欺骗到攻击者可能想要的任何东西。当然,文件扩展名也是这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值