【发布时间】:2014-09-02 04:56:58
【问题描述】:
我在检查图像是否为 png、gif、jpg、jpeg 时遇到问题。我尝试使用 getimagesize(path to file),但它需要完整的图像路径,因为我只有 image1.jpg 的图像名称。我想在上传之前检查 png、gif、jpg、jpeg 的文件类型。我想要一个代码在将其上传到目录之前检查类型。 getimagesize(path to file) 警告我 无法打开流 因为 efile 不在目录中,它还没有上传。我没有找到任何适合我的东西。这里的任何人都可以帮我解决这个问题。这是我的代码:
list(image_width, image_height, image_type) = getimagesize("image1.jpg");
switch ($source_image_type)
{
case IMAGETYPE_GIF:
//some code here
break;
case IMAGETYPE_JPEG:
//some code here
break;
case IMAGETYPE_PNG:
//some code here
break;
}
此代码向我发出无法打开流的警告。
【问题讨论】:
-
上传之前?因此,您想在上传之前检查图像的扩展名是否正确,您需要使用过滤文件元素的 html5 元素。如果您的意思是在将上传的文件移动到非临时文件夹之前,那么您可以使用
exif_imagetype。 -
它给了我“无法打开流”的警告。由于文件未上传到目录中。我想要一个代码在上传之前检查类型。
-
如果是在上传之前,那么您只有文件名可以使用。最好的办法是分解并检查最后一个扩展——这正是 웃웃웃웃웃 所做的。
-
我认为当您仅在客户端检查 mime 类型时(上传之前),您不能信任上传。无论如何..你可以像jsfiddle.net/634e0mc1/1这样用JavaScript检查它。
accept属性也很有帮助<input type="file" name="pic" accept="image/*">