• 01-11-2009, 20:18:06
    #1
    Üyeliği durduruldu
    Arkadaşlar siteye dosya upload ettim.
    Şimdi onları botla MYSQL`e ekletmek istyorum.
    Her şey sorunsuz çalışıyor denedim bir tek sorun dosyanın boyutunu nasıl öğrene bilirim?
  • 01-11-2009, 20:24:55
    #2
    kullanmadım ama sanırım bu işinizi görecektir:

    http://tr.php.net/manual/tr/function.filesize.php
  • 01-11-2009, 20:33:54
    #3
    Üyeliği durduruldu
    resim dosyasi olarak en boy olarak boyutunu öğrenmek istiyorsanizda getimagesize fonksiyonunu kullanabilirsiniz
  • 01-11-2009, 20:40:39
    #4
    Üyeliği durduruldu
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    resim dosyasi olarak en boy olarak boyutunu öğrenmek istiyorsanizda getimagesize fonksiyonunu kullanabilirsiniz
    Hayır mp3 dosyasının boyutunu öğrenmek için hocam.
    akadal34 adlı üyeden alıntı: mesajı görüntüle
    kullanmadım ama sanırım bu işinizi görecektir:

    http://tr.php.net/manual/tr/function.filesize.php
    Bunu Byte` göstermeden yaptıra bilirmiyiz?
    MByte olarak?
  • 01-11-2009, 20:42:52
    #5
    Üyeliği durduruldu
    XiechenG adlı üyeden alıntı: mesajı görüntüle
    Bunu Byte` göstermeden yaptıra bilirmiyiz?
    MByte olarak?
    hocam ilgili sayfada yorumlar kismina inerseniz filesize2bytes diye bir fonksiyon göreceksiniz. o direk işinizi görebilir
  • 01-11-2009, 20:52:40
    #6
    Üyeliği durduruldu
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    hocam ilgili sayfada yorumlar kismina inerseniz filesize2bytes diye bir fonksiyon göreceksiniz. o direk işinizi görebilir
    Ben php de acemiyim şimdi burada ben dosyanın ismini nerde belirticeğim?
    Ya da nasıl fonkisyona ataya bilirim?

    şöle yaptım fakat 0 aldım
    <?php
    /**
     * Converts human readable file size (e.g. 10 MB, 200.20 GB) into bytes.
     *
     * @param string $str
     * @return int the result is in bytes
     * @author Svetoslav Marinov
     * @author http://slavi.biz
     */
    function filesize2bytes($str) {
        $bytes = 0;
    
        $bytes_array = array(
            'B' => 1,
            'KB' => 1024,
            'MB' => 1024 * 1024,
            'GB' => 1024 * 1024 * 1024,
            'TB' => 1024 * 1024 * 1024 * 1024,
            'PB' => 1024 * 1024 * 1024 * 1024 * 1024,
        );
    
        $bytes = floatval($str);
    
        if (preg_match('#([KMGTP]?B)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) {
            $bytes *= $bytes_array[$matches[1]];
        }
    
        $bytes = intval(round($bytes, 2));
    
        return $bytes;
    }
    
    // c?kt?s?:
    // somefile.txt: 1024 bytes
    
    $filename = 'errors/001.mp3';
    echo $filename . ': ' . filesize2bytes($filename) . ' bytes';
    
    
    ?>
    echo $filename . ': ' . filesize($filename) . ' bytes';
    bu kodu
    echo $filename . ': ' . filesize($filename)/1024 . ' KBytes';
    olarak yazıyorum
    fakat bölme işlemi yapılan zaman mesela 664.055664063 böyle uzun bir rakam çıkıyor.
    Noktadan sonrasını sile bilirmiyiz?
    Yoksa uzun bir kodmu gerekir bu zaman?
  • 01-11-2009, 23:40:13
    #8
    Üyeliği durduruldu
    XiechenG adlı üyeden alıntı: mesajı görüntüle
    Ben php de acemiyim şimdi burada ben dosyanın ismini nerde belirticeğim?
    sizin koda hocam bu fonksiyonuda dahil edeceksiniz

    echo $filename . ': ' . filesize2bytes(filesize($filename));
    gibi
  • 02-11-2009, 04:54:47
    #9
    Üyeliği durduruldu
    Hocam intval için teşekkürler

    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    sizin koda hocam bu fonksiyonuda dahil edeceksiniz

    echo $filename . ': ' . filesize2bytes(filesize($filename));
    gibi
    Hocam şimdi yaptığım işlemler şöle
    öncelikle
    filesize2bytes(filesize($filename))
    olayını bildirdiğiniz gibi doğru yazılışını yazdım
    daha sonra
    filesize($filename)/1024
    bölme işlemini yaptırdım ve akadal34 arkadaşımızın verdiği invatl ile de
    intval(filesize2bytes(filesize($filename)/1024))
    yuvarlaklaştırdım fakat şöle bir sorun belirdi
    ben MB olarak göstermek istiyordum ama bana KB olarak 664 verdi
    şimdi ben onu nasıl 0.66 yazdırıcağımı düşünüyorken
    1000e bölmeye karar verdim
    echo $filename . ': ' . intval(filesize2bytes(filesize($filename)/1024))/1000;
    ama 1000e bölünce 0.664 olarak çıktı bunu noktadan sonrasının 2 rakamını çektirmek mümkünmü acaba dostlar?