• 12-07-2014, 12:53:27
    #1
    Merhaba arkadaşlar bu kodlar çalışıyor resmi kaydediyor ama klasöre kaydederken türkçe karakter hatası veriyor. örneğin resmin ismi 2014-Moda-Diyarı.png bunu klasöre 2014-Moda-Diyarı.png diye kaydediyor çözümü nedir ?


    $konuresimd = $_POST["konuresimd"];
    
    
    
    if($_FILES) 
    { 
        $uploaddir = '../resimler'; // upload edilecek klasör 
        $img = getimagesize($_FILES['konuresimd']['tmp_name']); // resmin boyutları ve türü için kullanılıyor manuale detayı için bakabilirsin 
        $ext = explode('/', $img['mime']); // resmin uzantısını alıyoruz jpg, png, gif... 
        $new_name = time() . mt_rand(10000, 99999); // rastgele bir isim yaratıyoruz. yoksa aynı isimli dosya üstüne yazılabilir 
        $uploadfile = $new_name . '.' . $ext[1]; // yeni dosya ismi uzantısıyla birlikte 
    
        // resmi geçici klasöründen yüklemek istediğimiz yere taşıyoruz. 
        if(move_uploaded_file($_FILES['konuresimd']['tmp_name'], $uploaddir . '/' . replaceSpace($_FILES['konuresimd']['name']))) 
        { 
            echo 'yükleme tamam'; 
        } 
    }
  • 12-07-2014, 13:08:36
    #2
    Dosya isimleri sadece latin harflerden oluşursa herkes için iyi olur... Aşağıya bir fonksiyon yazdım. Dosya adındaki türkçe karakterleri kaldırdım.

    Kolay gelsin



    function LatinHarflereCevir($str) {
    	$ara = array("Ş", "ş", "Ç", "ç", "Ö", "ö", "Ü", "ü", "Ğ", "ğ", "İ", "ı");
    	$deg = array("S", "s", "C", "c", "O", "o", "U", "u", "G", "g", "I", "i");
    	return str_replace($ara,$deg,$str);
    }
    
    $konuresimd = $_POST["konuresimd"];
    
    
    
    if($_FILES) 
    { 
        $uploaddir = '../resimler'; // upload edilecek klasör 
        $img = getimagesize($_FILES['konuresimd']['tmp_name']); // resmin boyutları ve türü için kullanılıyor manuale detayı için bakabilirsin 
        $ext = explode('/', $img['mime']); // resmin uzantısını alıyoruz jpg, png, gif... 
        $new_name = time() . mt_rand(10000, 99999); // rastgele bir isim yaratıyoruz. yoksa aynı isimli dosya üstüne yazılabilir 
        $uploadfile = $new_name . '.' . $ext[1]; // yeni dosya ismi uzantısıyla birlikte 
    
        // resmi geçici klasöründen yüklemek istediğimiz yere taşıyoruz. 
        if(move_uploaded_file($_FILES['konuresimd']['tmp_name'], $uploaddir . '/' . LatinHarflereCevir(replaceSpace($_FILES['konuresimd']['name'])))) 
        { 
            echo 'yükleme tamam'; 
        } 
    }



    truser adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar bu kodlar çalışıyor resmi kaydediyor ama klasöre kaydederken türkçe karakter hatası veriyor. örneğin resmin ismi 2014-Moda-Diyarı.png bunu klasöre 2014-Moda-Diyarı.png diye kaydediyor çözümü nedir ?


    $konuresimd = $_POST["konuresimd"];
    
    
    
    if($_FILES) 
    { 
        $uploaddir = '../resimler'; // upload edilecek klasör 
        $img = getimagesize($_FILES['konuresimd']['tmp_name']); // resmin boyutları ve türü için kullanılıyor manuale detayı için bakabilirsin 
        $ext = explode('/', $img['mime']); // resmin uzantısını alıyoruz jpg, png, gif... 
        $new_name = time() . mt_rand(10000, 99999); // rastgele bir isim yaratıyoruz. yoksa aynı isimli dosya üstüne yazılabilir 
        $uploadfile = $new_name . '.' . $ext[1]; // yeni dosya ismi uzantısıyla birlikte 
    
        // resmi geçici klasöründen yüklemek istediğimiz yere taşıyoruz. 
        if(move_uploaded_file($_FILES['konuresimd']['tmp_name'], $uploaddir . '/' . replaceSpace($_FILES['konuresimd']['name']))) 
        { 
            echo 'yükleme tamam'; 
        } 
    }
  • 12-07-2014, 13:10:50
    #3
    mtl adlı üyeden alıntı: mesajı görüntüle
    Dosya isimleri sadece latin harflerden oluşursa herkes için iyi olur... Aşağıya bir fonksiyon yazdım. Dosya adındaki türkçe karakterleri kaldırdım.

    Kolay gelsin



    function LatinHarflereCevir($str) {
    	$ara = array("Ş", "ş", "Ç", "ç", "Ö", "ö", "Ü", "ü", "Ğ", "ğ", "İ", "ı");
    	$deg = array("S", "s", "C", "c", "O", "o", "U", "u", "G", "g", "I", "i");
    	return str_replace($ara,$deg,$str);
    }
    
    $konuresimd = $_POST["konuresimd"];
    
    
    
    if($_FILES) 
    { 
        $uploaddir = '../resimler'; // upload edilecek klasör 
        $img = getimagesize($_FILES['konuresimd']['tmp_name']); // resmin boyutları ve türü için kullanılıyor manuale detayı için bakabilirsin 
        $ext = explode('/', $img['mime']); // resmin uzantısını alıyoruz jpg, png, gif... 
        $new_name = time() . mt_rand(10000, 99999); // rastgele bir isim yaratıyoruz. yoksa aynı isimli dosya üstüne yazılabilir 
        $uploadfile = $new_name . '.' . $ext[1]; // yeni dosya ismi uzantısıyla birlikte 
    
        // resmi geçici klasöründen yüklemek istediğimiz yere taşıyoruz. 
        if(move_uploaded_file($_FILES['konuresimd']['tmp_name'], $uploaddir . '/' . LatinHarflereCevir(replaceSpace($_FILES['konuresimd']['name'])))) 
        { 
            echo 'yükleme tamam'; 
        } 
    }
    bu fonksiyon bende de var ama ben wordpress teki gibi istiyorum kullanıcı ne adla keyderse o şekil çıksın.
  • 13-07-2014, 16:31:00
    #4
    Form'un sonuna accept-charset="utf-8" eklermisin eger olmazsa iconv denermisin.Header fonksiyonu kullanirmisin header("Content-type:text/html;charset=utf-8");