正在下载.docx文件

时间:2012-11-27 21:45:46

标签: php download

我正在使用phpdocx来创建word文档。当我在服务器上查看它时,它是一个有效的word文档。但是,当我尝试下载它时,它说该文件无法打开,因为该文件存在问题。 Word能够恢复文档,但客户端会抱怨无效的Word文档。这是我用来下载文件的代码:

function readfile_chunked_remote($filename, $seek = 0, $retbytes = true, $timeout = 3) {
    set_time_limit(0); 
    $defaultchunksize = 1024*1024; 
    $chunksize = $defaultchunksize; 
    $buffer = ''; 
    $cnt = 0; 
    $remotereadfile = false; 


if (preg_match('/[a-zA-Z]+:\/\//', $filename)) 
$remotereadfile = true; 

$handle = @fopen($filename, 'rb'); 

if ($handle === false) { 
return false; 
} 

stream_set_timeout($handle, $timeout); 

if ($seek != 0 && !$remotereadfile) 
fseek($handle, $seek); 

while (!feof($handle)) { 

if ($remotereadfile && $seek != 0 && $cnt+$chunksize > $seek) 
    $chunksize = $seek-$cnt; 
else 
    $chunksize = $defaultchunksize; 

$buffer = @fread($handle, $chunksize); 

if ($retbytes || ($remotereadfile && $seek != 0)) { 
    $cnt += strlen($buffer); 
} 

if (!$remotereadfile || ($remotereadfile && $cnt > $seek)) 
    echo $buffer; 

ob_flush(); 
flush(); 
} 

$info = stream_get_meta_data($handle); 

$status = fclose($handle); 

if ($info['timed_out']) 
return false; 

if ($retbytes && $status) { 
return $cnt; 
} 

return $status; 

}

谢谢!

0 个答案:

没有答案