0

可能重复:
如何在 PHP 中将所有图像转换为 JPG 格式?

我正在尝试将用户名传递给文件名并以 .jpg 结尾的文件所以输出将是“user-mycoolnewimage.jpg”。目前有关如何执行此操作的任何建议都是对“randnumber-mycoolnewimage.png”的更改,这不是我想要的。随机数对服务器日志没有帮助,并且图像需要以 jpg 结尾,因为它正在被转换。

$file = rand(0, 10000000).$_FILES['t1']['name'];
if (move_uploaded_file($_FILES['t1']['tmp_name'], $file)) {
    if($fp = fopen($file,"rb", 0)) {
        $picture = fread($fp,filesize($file));
        fclose($fp);
        $image = imagecreatefrompng($file);
        imagejpeg($image, $file, 70);
        imagedestroy($image);
        $tag1 = '<img src="'.$file.'" alt="" class="default" />';
        //unlink($file);        
     }
}
4

1 回答 1

1

我认为你正在寻找的是basename(记录在这里

你可以做的一件事是修改你的脚本,让你创建两个不同$file的变量,一个保存初始值,另一个png保存jpeg路径。您还需要unlink完成png一次:

$source = $username . "-" . $_FILES['t1']['name'];
$destination = $username . "-" . basename($_FILES['t1']['name']) . ".jpg";
if (move_uploaded_file($_FILES['t1']['tmp_name'], $source)) {
    if($fp = fopen($source,"rb", 0)) {
        $picture = fread($fp,filesize($source));
        fclose($fp);
        $image = imagecreatefrompng($source);
        imagejpeg($image, $destination, 70);
        imagedestroy($image);
        $tag1 = '<img src="'.$file.'" alt="" class="default" />';
        unlink($source);        
     }
}
于 2013-01-12T17:16:34.020 回答