CodeIgniter ile dosya yüklerken dosya isimleri CodeIgniter tarafından url dostu hale dönüştürülüyor. Yalnız bu işlem sırasında türkçe olan bütün karakterleri kaybediyorsunuz. Bu handikapı aşmak amacıyla CodeIgniter’ın Upload kütüphanesine ufak bir müdahalede bulunuyoruz.
Aşağıdaki dosyayı MY_Upload.php dosya adıyla application/libraries klasörünün içerisine kaydediyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class MY_Upload extends CI_Upload { function clean_file_name($filename) { $bad = array( "<!--", "-->", "'", "<", ">", '"', '&', '$', '=', ';', '?', '/', "%20", "%22", "%3c", // < "%253c", // < "%3e", // > "%0e", // > "%28", // ( "%29", // ) "%2528", // ( "%26", // & "%24", // $ "%3f", // ? "%3b", // ; "%3d" // = ); $filename = str_replace($bad, '', $filename); // Tayfun ekleme { $specialLetters = array( 'a' => array('á','à','â','ä','ã'), 'A' => array('Ã','Ä','Â','À','Á'), 'e' => array('é','è','ê','ë'), 'E' => array('Ë','É','È','Ê'), 'i' => array('í','ì','î','ï','ı'), 'I' => array('Î','Í','Ì','İ','Ï'), 'o' => array('ó','ò','ô','ö','õ'), 'O' => array('Õ','Ö','Ô','Ò','Ó'), 'u' => array('ú','ù','û','ü'), 'U' => array('Ú','Û','Ù','Ü'), 'c' => array('ç'), 'C' => array('Ç'), 's' => array('ş'), 'S' => array('Ş'), 'n' => array('ñ'), 'N' => array('Ñ'), 'y' => array('ÿ'), 'Y' => array('Ÿ'), 'G' => array('Ğ'), 'g' => array('ğ') ); foreach($specialLetters as $letter => $specials){ foreach($specials as $s){ $filename = str_replace($s, $letter, $filename); } } $fd = explode('.', $filename); $uzanti = strtolower(array_pop($fd)); array_push($fd, $uzanti); $filename = implode('.', $fd); // } Tayfun return preg_replace("/[^a-zA-Z0-9\-\.]/", "_", stripslashes($filename)); } } ?> |
Burada daha önceki yazımda belirttiğim fonksiyonun özelliklerini CodeIgniter Upload kütüphanesine ekliyoruz. Böyle bundan sonra türkçe karakterli dosyaları uygulamamıza yüklediğimiz zaman, yazılım o karakterleri düzeltilmiş isimde silmek yerine uygun olan karakterleri kullanıyor. Yukarıdaki eklemede bir de dosya uzantısının küçük harfe dönüştürmüşüm. O da şirketten bir ekleme olmuş.
Çok faydalı oldu teşekkürler!