在作PHP程序時,須要使用PHP作的文件下載函數
那作就作唄把代碼複製過來改了一改.post
不少效果也出來了code
那麼點擊下載後,恩,本覺得搞定了文件下載,誰知道,圖片打開的時候提示文件損壞,這我就觀察了文件的大小.彷佛真是多了 1KB左右.圖片
使用PS打開,恩,提示了損壞,不過圖象能夠出來.get
那麼我就認爲是 那多出來的 1kb的問題了.it
而後,我把一個txt上傳上去,而後下載.io
果真發現,文件的前面以及後面,都多了幾個 字符.function
那我就在想應該怎麼去掉啊.各類百度,谷歌,上論壇提問.亂碼
最後,通過我一個多小時的搜索,終於找到了解決辦法.百度
代碼以下
public function download() { $upload=M('upload'); $data=$upload->find($_GET['id']); if(empty($data)){ header('HTTP/1.0 404 Not Found'); header('Location: .'); }else{ $path='./public/Uploads/'.$data['savename']; header("Content-Type:".$data['type']); header('Content-Disposition: attachment; filename="'.$data['name'].'"'); header('Content-Length:'.$data['size']); ob_clean(); flush(); readfile($path); } }
注意:
ob_clean(); flush();
這個是關鍵哦.用了這兩函數,搞定,圖片正常打開,文字也不亂碼.