Php fotoğraf yüklerken birden farklı formatta yükleme
Merhaba arkadaşlar, php ile bir fotoğraf yükleme inputum var burada yüklenen dosyayı aynı anda .webp formatında da yüklemek istiyorum.
Aşağıda şöyle bir kod yazdım fakat her zaman ilk move_uploaded_file() fonksiyonu çalışıyor diğerine girmiyor.
Örnek olarak ilk move_uploaded_file fonksiyonunda webp dosyasını kopyalıyorum çalışıyor.
Ama bu sefer normal eklediğim jpeg dosyasını belirtilen klasöre kopyalamıyor.
$files = $_FILES;
$folder = 'test';
foreach($files as $key => $file){
$TmpFilePath = $file['tmp_name'];
$FolderName = './Public/uploads/'.$folder.'/';
$NewPath = $FolderName.uniqid().$file['name'];
$image = imagecreatefromstring(file_get_contents($file));
ob_start();
imagejpeg($image, NULL, 100);
$cont = ob_get_contents();
ob_end_clean();
$content = imagecreatefromstring($cont);
$output = $FolderName.uniqid().$file['name'][0].'.webp';
imagewebp($content, $output);
imagedestroy($content);
if(move_uploaded_file($TmpFilePath, $output)) {
echo 'webp ok';
}
if(move_uploaded_file($TmpFilePath, $NewPath)){
echo 'normal ok';
$files['files'][$key] = $NewPath;
}
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
çünkü move_uploaded_file adında belirtildiği gibi yüklenen dosyayı taşı fonksiyonudur.
tmp klasöründen yüklenen dizine taşınır. Bu durumda tmp klasöründe o dosya artık olmadığı için ikinci kez kullanıldığında taşıma işlemi gerçekleşmez.
ikinci seferde ya taşınan konundan copy yapmayı ya da ilk tmpden copy yapıp sonra move_uploaded_file kullanmayı deneyin.