为什么使用filesize出错

recher1114 2010-04-02 02:01:04
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的参数?
...全文
315 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooledit2730 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 siramizu 的回复:]

第一个问题就是 服务器文件系统编码 和 程序编码 的问题,看来已经解决了

第二个问题比较麻烦,要涉及到 客户端文件系统编码 和 客户端浏览器识别编码
比如简体中文版Windows上IE一般对gb2312识别比较好,firefox则对utf-8支持很好,你可以多找几种编码试试
另外filename最好做rawurlencode,但是有时候浏览器也会识别不出encode
我以前搞过这个,……
[/Quote]
正解
Siramizu 2010-04-02
  • 打赏
  • 举报
回复
第一个问题就是 服务器文件系统编码 和 程序编码 的问题,看来已经解决了

第二个问题比较麻烦,要涉及到 客户端文件系统编码 和 客户端浏览器识别编码
比如简体中文版Windows上IE一般对gb2312识别比较好,firefox则对utf-8支持很好,你可以多找几种编码试试
另外filename最好做rawurlencode,但是有时候浏览器也会识别不出encode
我以前搞过这个,弄了两天试了很多方法也没弄好,也许还有我没想到的方法吧,建议别用中文
recher1114 2010-04-02
  • 打赏
  • 举报
回复
有没有人帮忙啊
recher1114 2010-04-02
  • 打赏
  • 举报
回复
我的网页编码是utf8的,上传的时候就把文件名转成gb2312了,现在下载又成gb2312,乱码了
recher1114 2010-04-02
  • 打赏
  • 举报
回复
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);
dahaidao 2010-04-02
  • 打赏
  • 举报
回复
学习一下。
kyzy_yy_pm 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bing19870624 的回复:]
PHP code
<?php
echo filesize(iconv('UTF-8','GB2312','D:/AppServ/www/cultivate/uploads/liusong_1270186268_演示文稿.ppt'));
?>
[/Quote]
yes
餅餅 2010-04-02
  • 打赏
  • 举报
回复
<?php 
echo filesize(iconv('UTF-8','GB2312','D:/AppServ/www/cultivate/uploads/liusong_1270186268_演示文稿.ppt'));
?>
recher1114 2010-04-02
  • 打赏
  • 举报
回复
郁闷,发现问题了,为什么中文的名字无法计算大小?杯具啊,英文和数字就可以

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧