php 文件下載 出現下載文件內容亂碼損壞的解決方法

在作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();

這個是關鍵哦.用了這兩函數,搞定,圖片正常打開,文字也不亂碼.


轉載自:http://www.9958.pw/post/download_content

相關文章
相關標籤/搜索