使用IE7 IE8通过SSL从PHP web应用程序间歇性下载错误
这些是大型(20-60mb)quickbooks文件。下载它们的IE用户似乎是随机获得“服务器返回无效或无法识别的响应”,下载失败 在其他浏览器中工作100%的时间 这是通过SSL实现的。这些下载是被迫的,我已经尝试了我见过的每一种不同的头文件。目前:使用IE7 IE8通过SSL从PHP web应用程序间歇性下载错误,php,ssl,download,internet-explorer,Php,Ssl,Download,Internet Explorer,这些是大型(20-60mb)quickbooks文件。下载它们的IE用户似乎是随机获得“服务器返回无效或无法识别的响应”,下载失败 在其他浏览器中工作100%的时间 这是通过SSL实现的。这些下载是被迫的,我已经尝试了我见过的每一种不同的头文件。目前: @ob_end_clean(); if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); header('Content
@ob_end_clean();
if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off');
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="'.$file->original_name.'"');
header("Content-Transfer-Encoding: binary");
header('Accept-Ranges: bytes');
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
$size = filesize($_SERVER['DOCUMENT_ROOT'].'/uploads/'.$file->name);
header("Content-Length: ".$size);
$new_length = $size;
/* output the file itself */
$chunksize = 1*(1024*1024); //you may want to change this
$bytes_send = 0;
if ($file_h = fopen($_SERVER['DOCUMENT_ROOT'].'/uploads/'.$file->name, 'rb'))
{
while
(!feof($file_h) &&
(!connection_aborted()) &&
($bytes_send<$new_length) )
{
set_time_limit(5);
$buffer = fread($file_h, $chunksize);
echo($buffer);
flush();
$bytes_send += strlen($buffer);
}
fclose($file_h);
}
die();
@ob_end_clean();
if(ini_get('zlib.output_compression'))ini_set('zlib.output_compression','Off');
标题(“内容类型:应用程序/强制下载”);
标题('Content-Disposition:attachment;filename=“”。$file->original_name.”);
标题(“内容传输编码:二进制”);
标题('Accept-Ranges:bytes');
标头(“缓存控制:公共,必须重新验证”);
标题(“Pragma:hack”);
标题(“到期日期:1997年7月26日星期一05:00:00 GMT”);
$size=filesize($\u服务器['DOCUMENT\u ROOT']./uploads/'.$file->name);
标题(“内容长度:.$size”);
$new_length=$size;
/*输出文件本身*/
$chunksize=1*(1024*1024)//你可能想改变这个
$bytes\u send=0;
如果($file\u h=fopen($\u SERVER['DOCUMENT\u ROOT']./uploads/'.$file->name,'rb'))
{
虽然
(!feof($file_h)和
(!connection_aborted())&&
($bytes_send如我所见,问题来自Pragma header字段,当它设置为“无缓存”时,这似乎不是您的问题。您是否使用任何工具[如Firefox Live Headers]检查Pragma字段的值?如我所见,问题来自Pragma header字段,当它设置为“无缓存”时,这似乎不是您的问题。您是否使用任何工具[如Firefox Live Headers]检查Pragma字段的值?您最终解决了此问题吗?我们面临类似的问题。您最终解决了此问题吗?我们面临类似的问题。