首頁  >  文章  >  後端開發  >  php下載檔案內容亂碼怎麼辦

php下載檔案內容亂碼怎麼辦

藏色散人
藏色散人原創
2021-03-08 09:31:261671瀏覽

php下載檔案內容亂碼的解決方法:1、透過「ob_clean()」函數清空輸出緩衝區內容;2、透過「flush()」函數刷新PHP程式的緩衝即可。

php下載檔案內容亂碼怎麼辦

本文操作環境:Windows7系統、PHP7.1、Dell G3電腦。

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

在做PHP程式時,需要使用PHP做的檔案下載

那做就做嗆把程式碼複製過來改了一改。

很多效果也出來了

那麼點擊下載後,恩,本以為搞定了文件下載,誰知道,圖片打開的時候提示文件損壞,這我就觀察了文件的大小。似乎真是多了 1KB左右。

使用PS打開,恩,提示了損壞,不過圖象可以出來。

那麼我就認為是 那多出來的 1kb的問題了。

然後,我把一個txt上傳上去,然後下載.

果然發現,檔案的前面以及後面,都多了幾個 字元。

那我就在想該怎麼去掉啊.各種百度,谷歌,上論壇提問.

最後,經過我一個多小時的搜索,終於找到了解決辦法.【推薦:《PHP影片教學》】

程式碼如下

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();這個是關鍵。用了這兩函數,搞定,圖片正常打開,文字也不亂碼。

以上是php下載檔案內容亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn