gpt4 book ai didi

php - 如何确保上传的文件是 jpg、gif 或 png?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:36 24 4
gpt4 key购买 nike

在 php 中,我可以通过扩展名检查上传的文件是否具有正确的类型,因此代码应如下所示:

if ((($_FILES["photo1"]["type"] == "image/gif")
|| ($_FILES["photo1"]["type"] == "image/jpeg")
|| ($_FILES["photo1"]["type"] == "image/png"))
&& ($_FILES["photo1"]["size"] < 500000)) //also limiting size

然后在我的代码的下一步中,我准备了一个文件以供进一步处理。但是,如果有人在上传前将 text_file.doc 或 javascript_file.js 更改为 samplefile.jpg 怎么办?

move_uploaded_file(($_FILES['photo1']['tmp_name']), "photos/1.jpg");
$source1 = imagecreatefromjpeg("../photos/source1.jpg");

然后用户将看到来自 imagecreatefromjpeg 步骤的错误:

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG
library reports unrecoverable error: in...

如果文件不是图形文件,如何跳过处理部分不显示错误?

最佳答案

file-uploads 的文档中所写, 说明 $_FILES['userfile']['type']

The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.

这意味着它没有在 php 端检查,你应该用 mime_content_type 来检查它并确认其 mime 类型。

或者,您可以使用 getimagesize实际检查已上传的文件是否有图像大小,如果没有,则它不是图像。

关于php - 如何确保上传的文件是 jpg、gif 或 png?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com