filesize()是读取一个文件的大小,它的参数是一个文件的路径及文件名
而你给的参数则是一个路径,当然filesize($row['path'])得到的是0咯~~

解决方案 »

  1.   

    int filesize ( string filename)返回文件大小的字节数,如果出错返回 FALSE。 注: 本函数不能作用于远程文件,被检查的文件必须通过服务器的文件系统访问。
      

  2.   

    给你这个函数参考吧(从PHP手册上COPY的):语法: new dir(string directory);
    传回值: 物件
    函式种类: 档案存取 
    内容说明 
    这是一个类似物件导向的类别物件,用来读取目录。当目录参数 directory 开启之后,有二个属性可用:handle 属性就像其它非物件的函式所用的 readdir()、rewinddir() 及 closedir();path 属性则设定开启目录后的路径参数。本物件有三个方法 (method):read、rewind 与 close。使用范例 
    <?
    $d = dir("/etc");
    echo "Handle: ".$d->handle."<br>\n";
    echo "Path: ".$d->path."<br>\n";
    while($entry=$d->read()) {
        echo $entry."<br>\n";
    }
    $d->close();
    ?> 
      

  3.   

    1、确认path中存放的是含绝对路径的文件名
    2、你的$str="update book set fsize='".round(filesize($row['path'])/1024)."k'";
    缺少条件,修改的结果以最后一次为准
      

  4.   

    $str="update book set fsize='".round(filesize($row['path'])/1024)."k'";
    这里的path包括文件名称,如 t01/abc.pdf,路径也没有问题,这个都试过了
    还有就是这段程序有什么问题没有??
      

  5.   

    至少要这样
    $str="update book set fsize='".round(filesize($row['path'])/1024)."k' where path='".$row['path']."'";没有修改条件时将对全部记录进行修改,如果最后一个文件的大小为0。。
      

  6.   

    where($row=mssql_fetch_array($result)//通过循环读取数据内容
           {
                       $str="update book set fsize='".round(filesize($row['path'])/1024)."k' where path='".$row['path']."'";  mssql_query($str,$conn);
                        }
      

  7.   

    <?php// 输出类似:somefile.txt: 1024 bytes$filename = 'c:/study/PHP参考.chm';
    echo $filename . ': ' . filesize($filename) . ' bytes';?> 我想 你还是要先定一个绝对的路径,这个例子看看对你有没有帮助。
      

  8.   


    在这里把array和row的用法搞错了。
    1.把mssql_fetch_row改为mssql_fetch_array;
    2.$str后面加上条件就ok而不是0k了^_^对大家的所有帮助和建议表示感谢!!
      

  9.   

    用filesize(string)用相对路径也是可以的。
    对大家的所有帮助和建议表示感谢!!