php 文件下載 出現(xiàn)下載文件內(nèi)容亂碼損壞的解決方法(推薦)
在做PHP程序時(shí),需要使用PHP做的文件下載
那做就做唄把代碼復(fù)制過(guò)來(lái)改了一改。
很多效果也出來(lái)了
那么點(diǎn)擊下載后,恩,本以為搞定了文件下載,誰(shuí)知道,圖片打開(kāi)的時(shí)候提示文件損壞,這我就觀察了文件的大小。似乎真是多了 1KB左右。
使用PS打開(kāi),恩,提示了損壞,不過(guò)圖象可以出來(lái)。
那么我就認(rèn)為是 那多出來(lái)的 1kb的問(wèn)題了。
然后,我把一個(gè)txt上傳上去,然后下載.
果然發(fā)現(xiàn),文件的前面以及后面,都多了幾個(gè) 字符。
那我就在想應(yīng)該怎么去掉啊.各種百度,谷歌,上論壇提問(wèn).
最后,經(jīng)過(guò)我一個(gè)多小時(shí)的搜索,終于找到了解決辦法.
代碼如下
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();這個(gè)是關(guān)鍵哦。用了這兩函數(shù),搞定,圖片正常打開(kāi),文字也不亂碼。
以上這篇php 文件下載 出現(xiàn)下載文件內(nèi)容亂碼損壞的解決方法(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
實(shí)現(xiàn)PHP框架系列文章(6)mysql數(shù)據(jù)庫(kù)方法
這篇文章主要介紹了實(shí)現(xiàn)PHP框架系列文章(6)mysql數(shù)據(jù)庫(kù)方法的相關(guān)資料,需要的朋友可以參考下2016-03-03
PHP實(shí)現(xiàn)遠(yuǎn)程下載文件到本地
經(jīng)常寫(xiě)采集器發(fā)布接口需要使用到遠(yuǎn)程附件的功能,所以自己寫(xiě)了一個(gè)PHP遠(yuǎn)程下載文件到本地的函數(shù),一般情況下已經(jīng)夠用了,如果服務(wù)器支持CURL函數(shù),程序則會(huì)優(yōu)先選擇CURL,有需要的小伙伴可以參考下。2015-05-05
CI框架實(shí)現(xiàn)cookie登陸的方法詳解
這篇文章主要介紹了CI框架實(shí)現(xiàn)cookie登陸的方法,結(jié)合實(shí)例形式分析了CI框架使用cookie實(shí)現(xiàn)登陸的步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-05-05
PHP使用DOMDocument類生成HTML實(shí)例(包含常見(jiàn)標(biāo)簽元素)
這篇文章主要介紹了PHP使用DOMDocument類生成HTML實(shí)例,包含常見(jiàn)標(biāo)簽元素,如表單、表格、CSS樣式等,最后寫(xiě)了一個(gè)比較完整的例子,給需要的朋友參考下2014-06-06
yii2.0實(shí)現(xiàn)pathinfo的形式訪問(wèn)的配置方法
這篇文章主要介紹了yii2.0實(shí)現(xiàn)pathinfo的形式訪問(wèn)的配置方法的相關(guān)資料,需要的朋友可以參考下2016-04-04

