function downLoad(){ $path = './static/zhan/uploads/head/201708311617012941.png'; $filename = '個人文件.png'; // 文件名 //下面是輸出下載; header("Cache-Control: max-age=0"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename=' . basename($filename )); // 文件名 header('Content-Type: application/octet-stream'); //設置爲一個下載類型 header("Content-Transfer-Encoding: binary"); // 告訴瀏覽器,這是二進制文件 header('Content-Length: ' . filesize($path)); // 告訴瀏覽器,文件大小 @readfile($path); //輸出文件; }
這段代碼測試過正常的,以前 $path ='http://xxx/./static/zhan/uploads/head/201708311617012941.png'; 是寫成這樣的,致使下載下來的文件沒法正常打開,以前覺得是文件大小緣由,最後發現我把header('Content-Length: ' . filesize($path));這句註釋掉,竟然能夠正常打開文件了,最後才知道filesize($path)不須要加域名。瀏覽器