最近做的一个小网站,是给客户上传文件用的。比如网站容量是20G,那如果限制一个客户上传不超过1G,就可以提供给20个客户用了。被上司问了这个问题,我没大搞清楚为什么要用php去取得。。各位大侠有什么看法?

解决方案 »

  1.   


    <?php
    function explorerdir($sDir){
        
    //    static $aTempArr=array();
        static $iFileSize;
        $dp=opendir($sDir);
        while ($sFileName = readdir($dp)){
            
            if ($sFileName !='.' && $sFileName !='..'){  
                
                $sPath=$sDir."/" . $sFileName; 
                if ( is_dir($sPath)){
                    
                    explorerdir($sPath);   
                } else  {
                    
    //                $filetime=date("Y-m-d H:i:s",filectime("$path")); 
    //                $fp=$path.",".$filetime;
    $iFileSize += filesize($sPath);
                    $fp=$sPath;
    //                $aTempArr[]=$fp;
                }
           }
        }
        closedir($dp);
        return $iFileSize;
    //    return $aTempArr;
    }
    $iFileSizes = explorerdir("D:/wamp/www/csdn_html/test");if (1048576 > $iFileSizes && $iFileSizes >= 1024)
    $iFileSizes = $iFileSizes/1024 . 'KB';
    elseif (1073741824 > $iFileSizes && $iFileSizes >= 1048576)
    $iFileSizes = $iFileSizes/1024 . 'MB';
    else 
    $iFileSizes = $iFileSizes . 'Byte';
    echo $iFileSizes;
    ?>
      

  2.   

    这个有多种解决方案:如果是不同网站,可能给每一个客户分配空间。如果是同一网站:你可以将客户上传数据统计进数据库(或查询统计,每次上传时看看他还有多少配额,有的话,允许上传。
    否则pass.另,php可获得磁盘空间信息。
      

  3.   


    谢谢,我估计就是怎么用php获得磁盘空间信息,服务器是租的,这样也可以得到吗?
      

  4.   


    disk_free_space("C:");
    disk_free_space("D:");
    disk_total_space("C:");
    disk_total_space("D:");
      

  5.   

    怎么做,我php没怎么用过,每次写都去查api
      

  6.   

    怎么沉下去了。我看大家的代码都是计算本地磁盘的容量啊。我想知道的是有没有办法用php获得当前网站所能使用的最大空间。
    有相关的一些类和函数吗?
      

  7.   


    <?php
    //统计目录大小
    $path = "F:/wamp/www/test/image/";
    function directorysize($path)
    {
    $dir_size = 0;
    $handle = opendir($path);
    while($files = readdir($handle))
    {
    if($files != '.' && $files != '..')
    {
    $fileordir = $path."/".$files;
    if(is_file($fileordir))
    {
    $dir_size += filesize($fileordir);
    }

    if(is_dir($fileordir))
    {
    $dir_size += directorysize($fileordir);
    }
    }
    }
    closedir($handle);
    return $dir_size;
    }

    $dir_filesize = directorysize($path);
    echo $dir_filesize." bytes";
    ?>