【问题标题】:converting DURING upload before saving on server png/gif to jpg在保存到服务器 png/gif 之前将 DURING 上传转换为 jpg
【发布时间】:2013-01-04 01:52:39
【问题描述】:

所以我有一个图片上传脚本。 它上传图像并将其保存到服务器上的空间。 我似乎无法理解的是,当用户上传 .png 时,当它保存在我的服务器上时,我希望它是 jpg。

任何人都可以帮助解决这个问题,请不要直接将我引向另一个问题,因为我还没有任何工作。这是我的代码示例。

$name = addslashes($_FILES['image']['name']);
$ext = pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION); 
$size = $_FILES['image']['size'];
$temp = $_FILES ['image']['tmp_name'];
$error = $_FILES ['image']['error'];

if ($error > 0)
    die("Error uploading file! Code $error.");
else


if ($password == "" || $size > 2000000) {
    move_uploaded_file($temp, $images.$name);   
    mysql_query("INSERT INTO image_approval VALUES ('','$description','','$images$name','',NOW())");

    echo "Upload complete!";
    }else{
echo "Error uploading file";
    }

【问题讨论】:

  • 你必须“保存”(临时)然后转换
  • 好吧,我的意思是,我不确定我会如何做到这一点...... nabil - 我一定错过了从实际代码中删除它时,它现在工作正常,只是无法转换

标签: php image jpeg gd imagemagick-convert


【解决方案1】:

使用该函数转换上传的图片

// http://stackoverflow.com/a/1201823/358906
// Quality is a number between 0 (best compression) and 100 (best quality)
function png2jpg($originalFile, $outputFile, $quality) {
    $image = imagecreatefrompng($originalFile);
    imagejpeg($image, $outputFile, $quality);
    imagedestroy($image);
}

然后用unlink()删除旧图像。

您的代码将类似于:

// After the upload
png2jpg($the_jpg_file_path, $the_png_file_path, 80);
unlink($the_jpg_file_path);

【讨论】:

    【解决方案2】:

    使用GD,并假设$images 是您存储图像的目录(以斜线结尾),$name - 原始图像的文件名:

    $destinationPath = $images . basename($name, $ext) . '.jpg';
    $source = imagecreatefrompng($images . $name);
    imagejpeg($source, $destinationPath, 75);
    imagedestroy($source);
    

    或者Imagick:

    $image = new Imagick($images . $name);
    $image->writeImage($destinationPath);
    $image->destroy();
    

    【讨论】:

    • 我可以把它放在“move_uploaded_file”行之后吗?
    • 干杯人,凌晨 2 点后到这里,现在累了,只需要推动一下哈哈。非常感谢。
    猜你喜欢
    • 2013-04-02
    • 2012-01-25
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2012-09-15
    • 2011-10-28
    • 2013-12-21
    • 2012-01-22
    相关资源
    最近更新 更多