处理图像扩展

时间:2013-08-14 04:52:28

标签: php image

当用户将照片上传到我的网站时,我似乎更容易允许常见的图像扩展(jpg,png,gif),然后使用PHP将所有内容转换为jpg。我有很多次使用PHP我正在寻找一个图像,我必须使用自定义函数来检查图像名称的不同类型的扩展,但它似乎不值得,而且太重。我宁愿把所有转换为jpg并知道图像的确切路径,但看起来这可能是一个坏主意。

有没有更好的方法?其他人怎么做才能解决这个难题?

2 个答案:

答案 0 :(得分:1)

首先检查上传的图像格式。

$valid_formats = array("jpg", "png", "gif", "bmp" , "jpeg");
if (isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
    $name = $_FILES['photoimg']['name'];
    $size = $_FILES['photoimg']['size'];


    if (strlen($name)) {
        list($txt, $ext) = explode(".", $name);
        if (in_array($ext, $valid_formats)) {
            if ($size < (10240 * 10240)) {
                $actual_image_name = time() . substr(str_replace(" ", "_", $txt), 5) . "." . $ext;
                $tmp = $_FILES['photoimg']['tmp_name'];
                if (move_uploaded_file($tmp, $path . $actual_image_name)) {
                    //mysql_query("INSERT into hw_site_gallery SET gallery_content='$actual_image_name' ,hotel_id='$hotel_id', gallery_type='$gallery_type'");
                   /* QUERY END's HERE */

                }
                else
                    echo "failed";
            }
            else
                echo "Image file size max 10 MB";
        }
        else
            echo "Invalid file format..";
    }

答案 1 :(得分:1)

你可以看看imgur.com和类似网站是如何做到的。

  1. 每张图片都有自己唯一的ID。
  2. 无论是以.gif,.png还是.jpg结尾,每张图片都会被重写为工作
  3. (我假设)实际的扩展/文件名存储在DB
  4. e.g。 http://i.imgur.com/m6Z68x3.jpg(只是imgur顶部的一些链接)。您可以将结尾更改为.png,或.gif或其他一些扩展,并且它可以正常工作。没有扩展名显示照片的信息,但您可以重写它以显示图像。

    编辑:Prahbu几乎做1&amp; 3,使用time()而不是ID。你可以在这里结合2来做到这一点。