v2.5.2
Giriş yap

Php fotoğraf yüklerken birden farklı formatta yükleme

Anonim
358 defa görüntülendi

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;
  }
}

fatihozpolat
1195 gün önce

çü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.