Warning: filesize() [function.filesize]: stat failed for D:/AppServ/www/cultivate/uploads/liusong_1270186268_演示文稿.ppt 在我的电脑地址栏里可以通过D:/AppServ/www/cultivate/uploads/liusong_1270186268_演示文稿.ppt,这个路径访问到这个文件
echo filesize('D:/AppServ/www/cultivate/uploads/liusong_1270186268_演示文稿.ppt');还有想问一句如果是放在服务器上,filesize的函数路径是用硬盘路径访问,还是用域名路径访问?
比如http://192.168.0.1/dir/filename,还是用服务器的硬盘路径作为filesize的参数?

解决方案 »

  1.   

    <?php 
    echo filesize(iconv('UTF-8','GB2312','D:/AppServ/www/cultivate/uploads/liusong_1270186268_演示文稿.ppt'));
    ?>
      

  2.   

    3楼的仁兄还在么
    现在时能显示文件大小了,但是下载下来,文件名变乱码了,中文的变为乱码
    $fileName = $_GET['filename'];
    $src = iconv('UTF-8','GB2312',CULT_ROOT.'uploads/'.$fileName);
    $filesize = filesize($src);
    header("Pragma: public");
    header("Expires: 0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment;filename={$fileName}");
    header("Content-Transfer-Encoding: binary ");
    header("Content-Length: ".$filesize);

    //echo filesize(iconv('UTF-8','GB2312',$src));
    //var_dump(filesize($src));

    $file = fopen($src, "r");
    while(!feof($file))
    {
    $buf = fread($file, 4096);
    if( $buf )
    {
    echo $buf;
    }
    else
    {
    break;
    }
    }
    fclose($file);
      

  3.   

    我的网页编码是utf8的,上传的时候就把文件名转成gb2312了,现在下载又成gb2312,乱码了
      

  4.   

    第一个问题就是 服务器文件系统编码 和 程序编码 的问题,看来已经解决了第二个问题比较麻烦,要涉及到 客户端文件系统编码 和 客户端浏览器识别编码
    比如简体中文版Windows上IE一般对gb2312识别比较好,firefox则对utf-8支持很好,你可以多找几种编码试试
    另外filename最好做rawurlencode,但是有时候浏览器也会识别不出encode
    我以前搞过这个,弄了两天试了很多方法也没弄好,也许还有我没想到的方法吧,建议别用中文