我用这段代码检查图像的类型,
$f_type=$_FILES['fupload']['type'];
if ($f_type== "image/gif" OR $f_type== "image/png" OR $f_type== "image/jpeg" OR $f_type== "image/JPEG" OR $f_type== "image/PNG" OR $f_type== "image/GIF")
{
$error=False;
}
else
{
$error=True;
}
但是有些用户抱怨上传任何类型的图像时都会出错,而另一些用户则没有错误!
我想知道这是否可以解决问题:
if (mime_content_type($_FILES['fupload']['type']) == "image/gif"){...
任何意见?
永远不要使用$_FILES..['type']
。其中包含的信息完全未经验证,它是用户定义的值。自己测试类型。对于图像,exif_imagetype
通常是一个不错的选择:
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detectedType = exif_imagetype($_FILES['fupload']['tmp_name']);
$error = !in_array($detectedType, $allowedTypes);
另外,如果您的服务器支持这些finfo
功能,则它们的功能很棒。
问题内容: 在PHP网站上,他们建议的唯一实际检查是使用或,这里。当然,出于多种原因,您通常不希望用户上传任何类型的文件。 因此,我经常使用一些“严格”的MIME类型检查。当然,这是非常有缺陷的,因为通常哑剧类型是错误的,并且用户无法上传其文件。伪造和/或更改也非常容易。除此之外,每种浏览器和操作系统对它们的处理方式也不同。 另一种方法是检查扩展名,这当然比mime类型更容易更改。 如果只需要图像
我已经读过这个和这个问题,它似乎建议可以在客户端使用javascript检查文件MIME类型。现在,我明白了真正的验证仍然必须在服务器端完成。我想执行客户端检查,以避免不必要的服务器资源浪费。 我说目前没有办法用javascript检查MIME类型,对吗?还是我漏掉了什么?
问题内容: 我有以下代码来检查(上传的简历和推荐信是否与所需类型(pdf或doc或docx)匹配)和大小(小于400 kb) 这无法正常工作,甚至连txt文件都没有通过+大小限制,这是怎么回事? 谢谢, 问题答案: 下面仅使用mime类型来验证文件,然后检查两者的大小。有关大多数MIME类型的列表,请参见此处或google。
问题内容: 我有一个上传表单,正在检查文件大小和文件类型,以将上传的文件限制为2 MB,以及.pdf,.jpg,.gif或.png文件类型。我的目标是在用户违反这些规则之一的情况下向他们显示警报消息。 有四种方案: 正确的尺寸/正确的类型(工作中) 正确的尺寸/不正确的类型(工作中) 尺寸/类型 不 正确( 不起作用 ) 不正确的大小/ 不正确的 类型( 不起作用 ) 使用我当前的代码,即使文件类
问题内容: 我检查文件扩展名是否已上传。我的示例方法有效,但是现在我需要了解我的方法(使用)是否正确。还有另一种更好更快的方法吗? 问题答案: 使用)可能没有效率。如果您允许20个不同的扩展名怎么办? 尝试:
本文向大家介绍asp.net文件上传解决方案(图片上传、单文件上传、多文件上传、检查文件类型),包括了asp.net文件上传解决方案(图片上传、单文件上传、多文件上传、检查文件类型)的使用技巧和注意事项,需要的朋友参考一下 小编之前也介绍了许多ASP.NET文件上传的解决案例,今天来个asp.net文件上传大集合。 1 使用标准HTML来进行图片上传 前台代码: 后台代码: 2 单文件上传 这是最