代碼部分還可以進行優化,如有不對的地方,歡迎留言,感激不盡。
判斷文件路徑是否存在,存在那么就繼續進行。
/** * @desc 實現文件下載 * @date 2017/7/11 13:15 * @param [string $url] * @author 1245049149@qq.com * @return [resource] */ public function downPhoto($url){ if($this->checkLoad($url)){ Header("Content-type: application/octet-stream"); Header("Content-Transfer-Encoding: binary"); Header("Accept-Ranges: bytes"); //說明:這里的filename生成下載后的文件名,可以進行優化,生成你自己想要的名字,后綴等等 Header("Content-Disposition: attachment; filename=".$url); return readfile($url); }else{ return false; } }
/** * @desc 判斷文件路徑是否存在 * @date 2017/7/11 13:17 * @param [string $url] * @author 1245049149@qq.com * @return [bool] */ public function checkLoad($url){ $ch = curl_init(); $timeout = 10; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); if (strpos($contents,'200')){ return true; }else{ return false; } }
搞定!