文件代码如下,
<?
。
$servername = $_SERVER['DOCUMENT_ROOT']."/files/doc/".$localfile;
$handle = fopen($servername, "wb");
fwrite($handle, $arow['DOC_BODY']);
fclose($handle);
header("Content-type: ".$arow['ATTACH_TYPE']);
header("Accept-Ranges: bytes");
header("Accept-Length: ".$arow['DOC_SIZE']);
header("Content-Disposition: attachment; filename=$localfile");
readfile($servername);
?>
本来是直接从数据库中将大字段数据取出来,直接header后,echo的,但总是不行,后来,就先把数据从数据库中取出,生成到服务器的文件夹下(此时,该文件是正常的),但再readfile后,服务器上的该文件本来有600多K,但下载下来总是不到600多K,每次执行,下载后的文件的大小都是变化的。但总是没有下载完全,这是为什么?有的文件又可以正常下载。
<?
。
$servername = $_SERVER['DOCUMENT_ROOT']."/files/doc/".$localfile;
$handle = fopen($servername, "wb");
fwrite($handle, $arow['DOC_BODY']);
fclose($handle);
header("Content-type: ".$arow['ATTACH_TYPE']);
header("Accept-Ranges: bytes");
header("Accept-Length: ".$arow['DOC_SIZE']);
header("Content-Disposition: attachment; filename=$localfile");
readfile($servername);
?>
本来是直接从数据库中将大字段数据取出来,直接header后,echo的,但总是不行,后来,就先把数据从数据库中取出,生成到服务器的文件夹下(此时,该文件是正常的),但再readfile后,服务器上的该文件本来有600多K,但下载下来总是不到600多K,每次执行,下载后的文件的大小都是变化的。但总是没有下载完全,这是为什么?有的文件又可以正常下载。
header("Content-type: ".$arow['ATTACH_TYPE']);
header("Accept-Ranges: bytes");
header("Accept-Length: ".$arow['DOC_SIZE']);
header("Content-Disposition: attachment; filename=$localfile");
echo $arow['DOC_BODY'];
$name = './img/ok.png'
$fp = fopen($name, 'rb');// 发送合适的报头
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));// 发送图片并终止脚本
fpassthru($fp);
exit;?>
你用的是Apache服务器吧,你用IE下载测试吧,在Firefox里应该不会有问题。如果是这样,
你试试看你的Apache配置文件 httpd.conf 中的Timeout是不是设置的很短?默认为300一般不会有问题。