喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
 11  1/2  1  2  > 
     
标题: php下载文件问题求助?  
 
angeljyt
中级会员
Rank: 3Rank: 3



UID 72645
精华 0
积分 428
帖子 394
金钱 428 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-1
状态 离线
php下载文件问题求助?

代码如下:
<?php

   $file="Nutshell.chm";
   if(!file_exists($file)){

     echo "file doesn't exist";
     exit;
   }
   $data=file_get_contents($file);
   $size=strlen($data);

   header("pragma: public");
   header("Expires: 0");
   header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   header("Content-Type: application/octet-stream");
   header("Content-Disposition: attachment; filename=$file");
   header("Content-Transfer-Encoding: binary");
   header("Content-Lengthsize");
               
   echo $data;
   exit;
?>

问题是:

我把文件都放在一个目录下了。3本书
nutshell.chm(<<php in a nutshell>>)     1.05M,
javascript.chm(javascript权威指南第4版) 1.4M
CCS2PR.rar(Cascading Style Sheets 2.0 Programmers Reference ) 2.25M

下载Nutshell正常.打开能够读.
下javascript只能下几k.
下CSS2PR只能下到2M,打开是不正常的文件.

我用file_get_contents()和fread()都试过,一样的结果.

用FTP和网址直接打开能够下载,文件没问题.就是用我写的脚本下就有问题.本来还想用fopen(url)来试的,由于网站不allow_url_open是off,所以没办法了.

请教各位大虾,这是为什么?有什么解决办法.
2006-6-19 02:26 AM#1
查看资料  Blog  发短消息  顶部
 
zhg1983
金牌会员
Rank: 6Rank: 6
初级会员



UID 65483
精华 0
积分 1259
帖子 77
金钱 1259 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2005-8-4
状态 离线
[推荐阅读] 以php分界符正确的分解成数组,php代码智能自动匹配?至今没人实现
直接
header("Locationfile");
可以不?
2006-6-19 02:50 AM#2
查看资料  发短消息  QQ  顶部
 
angeljyt
中级会员
Rank: 3Rank: 3



UID 72645
精华 0
积分 428
帖子 394
金钱 428 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-1
状态 离线
[推荐阅读] OS的安装问题求教
谢谢,我还没相到用这个呢,用这个到是可以下载。
但是我还是想知道为什么我上面写的会有问题?
2006-6-19 05:30 AM#3
查看资料  Blog  发短消息  顶部
 
bugkiller
注册会员
Rank: 2



UID 73501
精华 0
积分 91
帖子 89
金钱 91 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-5-16
状态 离线
[推荐阅读] 数组运用正则表达式出错求救($dd["\\1"])
php.ini中限制文件大小为2M。



有BUG就要解决掉,
没有BUG也要创造BUG解决掉!
2006-6-19 09:20 AM#4
查看资料  发短消息  顶部
 
matchless (matchless)
注册会员
Rank: 2
一般会员



UID 67371
精华 0
积分 106
帖子 108
金钱 106 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2005-12-21
状态 离线
[推荐阅读] 低价出售全新电脑配件

$size=strlen($data);
换成
$size=filesize($file)
试试
2006-6-19 09:25 AM#5
查看资料  发短消息  顶部
 
angeljyt
中级会员
Rank: 3Rank: 3



UID 72645
精华 0
积分 428
帖子 394
金钱 428 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-1
状态 离线
[推荐阅读] 低价出售全新原装笔记本电脑
谢谢大家的关注。我现在用的是file_get_contents()所以用的是strlen(),filesize()我也用过。没用的。
如果是服务器限制2M的话,我只是不明白哪个javascript.chm怎么下不了,才1.4M啊,最多下几k就完了,2种读数据的方法我都试了。如果说是文件格式有问题的话,为什么2个chm文件其中的下个能下,为什么另一个就不能下。如果是文件大小有限制的话,为什么哪个2.2M多的能下完2M来。后面哪个2M多的文件就是后来我传上去验证是不是文件大小 有问题的。
2006-6-19 12:13 PM#6
查看资料  Blog  发短消息  顶部
 
chinahtml
金牌会员
Rank: 6Rank: 6


UID 69683
精华 0
积分 1012
帖子 1019
金钱 1012 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-16
状态 离线
[推荐阅读] 低价出售全新原装数码相机及数码摄像机
$size=filesize($file);
试试.




-地振山冈,一派溪山千古秀
-门朝大海,山合河水万年流
2006-6-19 12:19 PM#7
查看资料  发短消息  顶部
 
phphp
版主
Rank: 7Rank: 7Rank: 7
加班一族


UID 65188
精华 1
积分 182
帖子 3005
金钱 171 喜悦币
威望 10
人脉 1
阅读权限 100
注册 2005-7-20
来自 北京市海淀区
状态 离线
[推荐阅读] 奇怪的现象
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$file");
$fp = fopen($file,'rb');
while ($f = fread($fp,1024)) {
        echo $f;
}




书到用时方恨少, 事非经过不知难
2006-6-19 12:56 PM#8
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
angeljyt
中级会员
Rank: 3Rank: 3



UID 72645
精华 0
积分 428
帖子 394
金钱 428 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-1
状态 离线
[推荐阅读] 怎么使用PHP在后台生成word文档
郁闷,不明白。怎么现在能下载哪个javascript了。我还没改过代码呢。
2006-6-19 07:11 PM#9
查看资料  Blog  发短消息  顶部
 
angeljyt
中级会员
Rank: 3Rank: 3



UID 72645
精华 0
积分 428
帖子 394
金钱 428 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-1
状态 离线
[推荐阅读] 怎么样判断重复相同的用户名的
谢谢,用fread($file,"rb")能下载rar文件了。;
Thanks a million!
2006-6-19 08:06 PM#10
查看资料  Blog  发短消息  顶部
 11  1/2  1  2  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.023573 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP