Mongodb-PHP:文件下载未下载预期文件[重复]
Posted
技术标签:
【中文标题】Mongodb-PHP:文件下载未下载预期文件[重复]【英文标题】:Mongodb-PHP: File download doesnt download expected file [duplicate] 【发布时间】:2015-02-24 07:23:29 【问题描述】:我正在使用带有 php 的 mongodb。我有协议下载选项,当用户单击时,用户会在该选项上下载协议。单击时,我已导航到 php 文件下载代码所在的脚本 代码是
$mongoDbA = $mongoDb->findOne(array("agency_id" => new MongoId($_GET['id'])));
$filename = '../../images/upload/'.$mongoDbA['file'];
if (file_exists($filename))
header('Content-Description: File Transfer');
header('Content-Type: text/pdf');
header('Content-Disposition: attachment; filename='.basename($filename));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
readfile($filename);
exit;
我只允许上传 pdf 文件,所以数据库中只有 pdf 文件
当我点击时,它给了我错误并给了我没有扩展名的白色文件,大小几乎是 1 kb....发生了什么???
【问题讨论】:
请检查 php error_log。由于 php 错误,您下载的文件为空。你试过用笔记本打开“白色”文件吗? 没有。我尝试用 .pdf 重命名白色文件,然后它显示“无法打开文件”... 用记事本打开它,如果它是一个php错误,它也可能被扔在那里。 【参考方案1】:$filename = './images/upload/'.$mongoDbA['file'];
$fileinfo = pathinfo($filename);
$sendname = $fileinfo['filename'] . '.' . $fileinfo['extension'];
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="$sendname"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
readfile($filename);
exit;
【讨论】:
跟application.pdf & text/pdf 有关系吗?? 是的,另请参阅webdesign.about.com/od/multimedia/a/…以上是关于Mongodb-PHP:文件下载未下载预期文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章