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..
Yorum Yap