最近在用php做文件下载,出现了很多问题,劳神伤力,弄了很久终于解决了,于是乎记之。
刚开始时下载错误,弄了半天发现参数错误。
$uid=intval($_SESSION[id]);
$id=verify_id($_GET[id]);
老是报错,然后就修改,当改成
$uid=intval($_SESSION['id']);
$id=verify_id($_GET['id']);
就可以了,但随之新的问题又来了
,文件能下载了,可下载的文件有问题,word文档是乱码
,txt文件前有空格
,源文件没有空格的。
word文档乱码
txt文件有空格
于是又找啊找,研究了半天,终于解决了
解决办法:在header标签处加
ob_clean();
flush();
加了后,txt文档空格没有了,word文档乱码问题,正常显示了
。
ob_clean(); flush();所在的位置为readfile之前,如:
至此,整个下载功能全部完工。