我的网站上有一个文件(mp3语音文件)下载功能。当用户尝试下载文件时,对于某些用户来说,它工作正常。对于其他人,它只是打开浏览器下载窗口,它仍然没有下载任何内容。半小时后它显示0%。任何人都可以建议解决方案。
该网站是用PHP开发的。用户来自美国。这是否会因任何防火墙而发生?
下面是下载文件的代码
header("Cache-Control: cache, must-revalidate");
header("Pragma: public");
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="' . $originalFileName . '"');
header('Content-Length: '.$fileSize);
//open the file
$fp = fopen($filePath, 'rb');
//seek to start of missing part
fseek($fp, $seek_start);
//start buffered download
while(!feof($fp))
{
//reset time limit for big files
set_time_limit(0);
print(fread($fp, 1024*8));
flush();
ob_flush();
session_write_close();
}
fclose($fp);
答案 0 :(得分:-1)
您可以在session_write_close()
循环之外写下while
。
我认为,如果你一次又一次地关闭会话,那么它将不起作用。