最近在用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之前,如:
至此,整個下載功能全部完工。