最近更新一個項目,下載部分沿用了之前一個項目的下載代碼,可是這次出現了一個小問題,下載的word等文件就提示亂碼,下載rar等文件則直接提示文件已經損壞,找了許久也沒最終確定原因。胡亂解決后莫名其妙的解決了問題,記錄一下,原因待補充。
- $extend = explode('.', $file_info->path);
- $ext = array_pop($extend);
- $file_name = $file_info->file_name .'.'.$ext;
- $file = fopen($file_info->path,"r");
- Header("Content-type: application/octet-stream");
- Header("Accept-Ranges: bytes");
- Header("Accept-Length: ".filesize($file_info->path));
- Header("Content-Disposition: attachment; filename=".$file_name);
- ob_clean(); ## 這里是新增的代碼
- flush(); ## 這里是新增的代碼
- echo fread($file, filesize($file_info->path));
- fclose($file);
注意:下載文件名如果為中文會亂碼我們可以把它轉成utf8或拼音即可解決。
新聞熱點
疑難解答