打开网页为什么弹出下载对话框提示下载php文件

打开网页为什么弹出下载对话框提示下载php文件,第1张

这种情况。

你既然可以把php关联到下载工具。

当然也可以删掉吧?

呵呵~

删掉就行~~

如果是直接在下载工具设置,不监视php,或关掉

监视下载地址的功能

还有一种超级简单的方法。。。

就是用雅虎助手之类的修复软件~

修复一下注册表关联~~

也可以手动到注册表里删除啊~~

开始、运行、regedit、然后在HKEY_CLASSES_ROOT里找php

function download($file_dir,$file_name)

//参数说明:

//file_dir:文件所在目录

//file_name:文件名

{

$file_dir = chop($file_dir);//去掉路径中多余的空格

//得出要下载的文件的路径

if($file_dir != '')

{

$file_path = $file_dir;

if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/')

$file_path = '/';

$file_path = $file_name;

}

else

$file_path = $file_name;

//判断要下载的文件是否存在

if(!file_exists($file_path))

{

echo '对不起,你要下载的文件不存在。';

return false;

}

$file_size = filesize($file_path);

header("Content-type: application/octet-stream");

header("Accept-Ranges: bytes");

header("Accept-Length: $file_size");

header("Content-Disposition: attachment; filename="$file_name);

$fp = fopen($file_path,"r");

$buffer_size = 1024;

$cur_pos = 0;

while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)

{

$buffer = fread($fp,$buffer_size);

echo $buffer;

$cur_pos += $buffer_size;

}

$buffer = fread($fp,$file_size-$cur_pos);

echo $buffer;

fclose($fp);

return true;

}

你试一下吧,我再网上找的,没试过,看起来应该没问题

不过,你在代码最上面加上不限制时间不就行了吗,何必分段下载这么麻烦

文件的话 一般不可能直接下载的 PHP 一般都是搭建在LINUX里边

因为他设置了 权限 所以你无法直接下载 也就是基本不可能让你下载的

如果要是都想你想的这么简单 随便下载 那服务器岂不是很不安全了?

经过简单测试,下载大文件(>50M)时会出现,断节问题,还有对中文名字的文件支持不好,甚至返回404,下载的文件打不开也许是因为没有判断是否读取完,因为 fread不一定能一次性将一个文件读入内存,这样服务器有压力,服务器为了稳定可能对该内存区进行了优化,下面贴上我修改的代码,写的不好望指正,共同进步:

function download($file_url,$new_name=''){

                $file_url=iconv('utf-8','gb2312',$file_url); 

                //将编码转为支持中英文的gb2312编码

if(!isset($file_url)||trim($file_url)==''){

return '500';

}

if(!file_exists($file_url)){ //检查文件是否存在

return '404';

}

$file_name=basename($file_url);

$file_type=explode('',$file_url);

$file_type=$file_type[count($file_type)-1];

                $file_name=trim($new_name=='')$file_name:urlencode($new_name)''$file_type;

//输入文件标签

header("Content-type: application/octet-stream");

header("Accept-Ranges: bytes");

header("Accept-Length: "filesize($file_url));

header("Content-Disposition: attachment; filename="$file_name);

$file_type=fopen($file_url,'r'); //打开文件

//输出文件内容

$file_size=filesize($file_url);//获取文件大小

 $buffer=1024;   //定义1KB的缓存空间

                 $file_count=0;  //计数器,计算发送了多少数据

                 while(!feof($file_type) && ($file_size>$file_count)){ 

                 //如果文件还没读到结尾,且还有数据没有发送 

                 $senddata=fread($file_type,$buffer);

                 //读取文件内容到缓存区

                 $file_count+=$senddata;

                  echo $senddata;

                  }

//echo fread($file_type,filesize($file_url));

fclose($file_type);

}

//最主要的原因找到了,保存PHP源码时要用UTF-8 无ROM格式编码保存,否则每个文件头部都会有  EF  BB  这两个字节

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 打开网页为什么弹出下载对话框提示下载php文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情