2

我有一个网站,允许用户上传任何类型的照片。

即 gif、jpeg、png

现在,我如何将上传的文件转换为 JPEG,如果它们还没有?

谢谢

这是我的PHP:

if ($_FILES['media']['size'] != 0) {
    $target= UPLOADPATH . $media;
    move_uploaded_file($_FILES['media']['tmp_name'], $target);
    $query= "INSERT INTO posts (user_id, story, media, date, view, type) VALUES    
            ('$user_id', '$story', '$media', now(), '$view', '1')";
    mysqli_query($connect, $query)
        or die('error with query 2');
}
4

3 回答 3

1

简单地重命名它们的扩展名并不能解决问题,您需要使用图像处理器来更改文件。

查看imagemagick

于 2013-01-07T17:12:28.957 回答
1

在 PHP 中,您首先将上传文件的内容读入imagecreatefromstring()类似file_get_content($filePath). 从那里你使用一个imagejpeg写入另一个扩展名的文件.jpg

这是一个示例:

$handle = imagecreatefromstring(file_get_content($filePath));
imagejpeg($handle,'newfile.jpg',100);

参考

  1. 图片jpeg
  2. imagecreatefromstring
  3. 文件获取内容
于 2013-01-07T17:19:20.257 回答
0

也许尝试像 imagecreatefrom*() 这样的功能

imagecreatefrompng(youimage);

imagecreatefromgif(youimage);

在使用此功能之前,您需要了解文件格式。

然后使用imagejpeg()函数

于 2013-01-07T17:18:02.720 回答