您好,登錄后才能下訂單哦!
這篇文章主要講解了“php怎么根據URL下載遠程圖片、壓縮包、pdf等文件到本地”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php怎么根據URL下載遠程圖片、壓縮包、pdf等文件到本地”吧!
1、此方法可以下載圖片、壓縮包、pdf(親測),應該所有類型的文件都可以下載到本地,可以試一下
//遠程路徑,名稱,文件后綴 function downImgRar($url,$rename,$ext){ switch ($ext) { case 'jpg': //下載圖片 $file_path = 'uploads/images/'; break; case 'png': //下載圖片 $file_path = 'uploads/images/'; break; case 'pdf': //下載PDF $file_path = 'uploads/pdf/'; break; case 'rar': //下載壓縮包 $file_path = 'uploads/rar/'; break; case 'zip': //下載壓縮包 $file_path = 'uploads/rar/'; break; default: $file_path = 'uploads/files/'; break; } $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); $rawdata=curl_exec ($ch); curl_close ($ch); // 使用中文文件名需要轉碼 $fp = fopen($file_path.iconv('UTF-8', 'GBK', $rename).".".$ext,'w'); fwrite($fp, $rawdata); fclose($fp); // 返回路徑 return $_SERVER['DOCUMENT_ROOT'].$file_path.$rename.".".$ext; }
2、下載壓縮文件,這個只可以下載壓縮文件
// 下載壓縮包 function downRar($file_path) { $file_name = '/uploads/rar/2009323162920-維C銀翹片說明書.rar'; $file_name = iconv("utf-8","gbk//IGNORE",$file_name); // 特別注意!特別注意!特別注意這里,windows下必須開轉碼,不然直接文件不存 $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_name;// 比如windows下這里我的是 "D:/web/public/uploads/rar/2009323162920-維C銀翹片說明書.rar" //判斷如果文件存在,則跳轉到下載路徑 if (!file_exists($file_path)) { die("文件不存在!"); } $fp = fopen($file_path, "r+") or die('打開文件錯誤'); //下載文件必須要將文件先打開。寫入內存 $file_size = filesize($file_path); //返回的文件流 Header("Content-type:application/octet-stream"); //按照字節格式返回 Header("Accept-Ranges:bytes"); //返回文件大小 Header("Accept-Length:" . $file_size); //彈出客戶端對話框,對應的文件名 Header("Content-Disposition:attachment;filename=" . substr($file_name, strrpos($file_name, '/') + 1)); //防止服務器瞬間壓力增大,分段讀取 $buffer = 1024; while (!feof($fp)) { $file_data = fread($fp, $buffer); echo $file_data; } fclose($fp); die("下載成功!"); }
感謝各位的閱讀,以上就是“php怎么根據URL下載遠程圖片、壓縮包、pdf等文件到本地”的內容了,經過本文的學習后,相信大家對php怎么根據URL下載遠程圖片、壓縮包、pdf等文件到本地這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。