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に文書化されています)

できることの 1 つは、スクリプトを少し修正して、2 つの異なる$file変数 (1 つはイニシャルpngを保持し、もう 1 つは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 に答える