KCFinder ile Upload Edilen Dosyanın Adını Değiştirmek

Merhaba,

Ckeditor ile sunucuya dosya göndermeye çalıştığımızı varsayalım.

Dosya yüklemede sorun yok ama siz var olan dosyadaki Türkçe karakterleri ya da boşlukları kaldırmak isteyebilirsiniz. ( Benim gibi mesela )

Bunun için basit olarak seflink fonksiyonundan yararlanabiliriz.

Öncelikle kcfinder / core / class dizini altında bulunan browser.php dosyasını açalım.

Tabi öncelikle kendi kullandığınız seflink fonksiyonuzu kopyalayın. Yoksa benim kullandığımı alabilirsiniz. Zaten internette de bolca var.
 

protected function seflink ( $text )  {
    
        $find     = array ('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#','.','(',')',';',':',"quote",' ');
        $replace = array ('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp','','','','','','','_');
        $text = strtolower (str_replace( $find, $replace, $text ));
        $text = preg_replace ("@[^A-Za-z0-9\-_\.\+]@i", ' ', $text);
        $text = trim(preg_replace('/\s+/', ' ', $text));
        $text = str_replace (' ', '-', $text);        
        
        return  $text;
    
    }

 

 

Bizim işimiz

 protected   function   moveUploadFile ( $file, $dir ) {}

metodu ile.
 

   if   ( $message !== true ) {
            if  ( isset ( $file ['tmp_name'] ) )
                @unlink ( $file ['tmp_name'] );
            return "{$file['name']}: $message";
        }


Yukarıdaki satırların hemen altına şu kodları yapıştırın. Bu arada pathinfo() fonksiyonuna teşekkürlerimizi ediyoruz.
 

   
        $sadeceDosyaAdi = strtolower ($this->seflink(pathinfo($file['name'], PATHINFO_FILENAME)));
        $dosya_uzantisi  = strtolower (pathinfo($file['name'], PATHINFO_EXTENSION));
        
        $dosyaAdi = $sadeceDosyaAdi . "." . $dosya_uzantisi;

 

Ardından
 

$filename = $this->normalizeFilename( $file['name'] );


olan satırı şu şekilde değiştirin.
 

$filename = $this->normalizeFilename( $dosyaAdi );

 

Bundan sonra kcfinder yardımı ile sunucuyaattığınız dosyalar Türkçe karakter, boşluk, özel karakterler vb. gibi şeyler olmayacak. Boşluk yerine altçizgi ( _ ) olacak.

Evet, hepsi bu kadar..

 

1164 Görüntülenme

Yorum Yap