从手机打开PHP下载脚本时显示错误
我正在开发一个小网站,用户可以下载mp3文件。用PHP和Codeigniter编写的下载脚本是从手机打开PHP下载脚本时显示错误,php,codeigniter,Php,Codeigniter,我正在开发一个小网站,用户可以下载mp3文件。用PHP和Codeigniter编写的下载脚本是 public function index($id) { $item = $this->music_m->get($id); if(count($item)){ $path = $item->upload_path; if (file_exists($path)) {
public function index($id)
{
$item = $this->music_m->get($id);
if(count($item)){
$path = $item->upload_path;
if (file_exists($path)) {
$item->noOfDownloads = $item->noOfDownloads + 1;
$this->music_m->save($item, $id);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
ob_clean();
flush();
readfile($path);
exit;
}else{
echo "File doesnot exist";
exit;
}
}else{
echo "Requested music item doesn't exist in database";
exit;
}
}
下载链接的URL的格式为63为项目id。
现在,当我点击桌面上的链接时,它将毫无错误地下载文件。但当我从智能手机(android)上点击相同的链接时,会出现以下错误
ob_clean(): failed to delete buffer, no buffer to delete.
从手机上下载,但无法打开文件。有人知道我哪里做错了吗?1。)据我所知,你从来没有打开过输出缓冲区。请参阅关于不存在缓冲区的警告是否正确。关于你不能打开文件:这到底是什么意思?会发生什么?下载文件的内容是什么?最有可能的是,下载的文件内容中有一条警告,使其无效。检查一下@阿卡斯卡:但在桌面上,它工作得很好,我可以下载文件并打开它。但是在我的安卓系统中,它给了我一个错误那么,这意味着什么呢?也许您使用的桌面应用程序是宽容的或其他什么。问题是:你检查过文件内容了吗?或者你认为在这里提问更容易一些,这样有人可以施展魔法来解决你的问题吗?