【问题标题】:Accept image by URL通过 URL 接受图像
【发布时间】:2013-10-12 07:11:52
【问题描述】:

我在我的网站上得到了输入,输入是假设获取图像 URL,要验证的是:

  1. 我得到图像了吗?
  2. 是 64x64 吗?
  3. 图片类型为png/jpg/gif/等?

我想到的所有上述术语的最佳解决方案是getimagesize

如果有人能想出更多用于验证和更好解决方案的术语,我将非常感激,谢谢大家,祝你有美好的一天。

【问题讨论】:

    标签: php image


    【解决方案1】:

    首先,

    您可以使用getimagesize(),它会为非图像的大小返回零。

    第二个,

    $imageName = $_FILES['upload']['name'];
    list($width, $height, $type, $attr) = getimagesize($imageName);
    

    您可以使用$width$height 检查条件

    第三个,

    $imageName = $_FILES['upload']['name'];
    $ext = pathinfo($imageName, PATHINFO_EXTENSION);// alternative method
    

    您可以从第二个开始使用$type 来检查extention

    使用$ext,您可以检查图像的extention

    这里是你的链接http://www.phpeasystep.com/phptu/25.html

    因此,您可以简单地将getimagesize() 用于这三个条件

    【讨论】:

    • 我的数据库存储了 URL 我没有上传图片,你认为我应该上传吗?
    • 如果在数据库中,只需在从数据库中检索到的$imageName中指定url
    • 我明白你的意思但是,你认为我应该把图片上传到我的服务器吗?
    • 如果您需要在上传到服务器之前进行验证,您可以使用客户端脚本来完成
    • 我可以,但是如果有人关闭了 JS,我应该总是添加服务器端验证。
    【解决方案2】:

    这是检查格式的 php 代码(比如 www.example.com/image.png)

    $url = "some url";
    $format = substr($url , -3);
    if($format == "png" || $format == "jpg" || $format == "gif")
        print "right";
    else
        print "wrong";
    

    【讨论】:

    • 谢谢mamal,我会等待更多的解决方案。
    • 请注意,这不一定总是有效;例如,我可以使用 .gif 并将其重命名为 .jpg
    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2012-10-14
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多