PHP 下载功能代码不兼容360浏览器,但火狐可以

dragon8csdn 2015-08-17 09:05:08
如题,火狐正常,360提示未知大小,下载失败。

核心代码如下,大部分都是网上乱摘乱拿的。大神们看看什么问题导致
$fileName = $name ? $name : pathinfo($file,PATHINFO_FILENAME);
$filePath = realpath($file);

$fp = fopen($filePath,'rb');

if(!$filePath || !$fp){
header('HTTP/1.1 404 Not Found');
echo ' <script type="text/javascript">alert("找不到文件");</script>';
exit;
}

$fileName = $fileName .'.'. pathinfo($filePath,PATHINFO_EXTENSION);
$encoded_filename = urlencode($fileName);
$encoded_filename = str_replace("+", "%20", $encoded_filename);

set_time_limit(0);
ini_get("memory_limit","512M");

header('HTTP/1.1 200 OK');
header("Content-type: application/octet-stream");
header("accept-Ranges: bytes");
header("Content-Length: ".filesize($filePath));
/* header("Accept-Length: ".filesize($filePath)); */
header( "Pragma: public" );
header( "Expires: 0" );
header('Content-Transfer-Encoding: binary');

$ua = $_SERVER["HTTP_USER_AGENT"];
if (preg_match("/MSIE/", $ua)) {
header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
} else if (preg_match("/Firefox/", $ua)) {
header('Content-Disposition: attachment; filename*="utf8\'\'' . $fileName . '"');
} else {
header('Content-Disposition: attachment; filename="' . $fileName . '"');
}

fpassthru($fp);

fclose ( $file );
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolun2010 2015-08-20
  • 打赏
  • 举报
回复
360浏览器,或者说国内浏览器都是ie内核,呵呵哒。
laowang008 2015-08-19
  • 打赏
  • 举报
回复
回复一下,具体我也不清楚

21,893

社区成员

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

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