php 根據(jù)URL下載遠(yuǎn)程圖片、壓縮包、pdf等文件到本地
1、此方法可以下載圖片、壓縮包、pdf(親測),應(yīng)該所有類型的文件都可以下載到本地,可以試一下
//遠(yuǎn)程路徑,名稱,文件后綴 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); // 使用中文文件名需要轉(zhuǎn)碼 $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、下載壓縮文件,這個(gè)只可以下載壓縮文件
// 下載壓縮包 function downRar($file_path) { $file_name = '/uploads/rar/2009323162920-維C銀翹片說明書.rar'; $file_name = iconv("utf-8","gbk//IGNORE",$file_name); // 特別注意!特別注意!特別注意這里,windows下必須開轉(zhuǎn)碼,不然直接文件不存 $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_name;// 比如windows下這里我的是 "D:/web/public/uploads/rar/2009323162920-維C銀翹片說明書.rar" //判斷如果文件存在,則跳轉(zhuǎn)到下載路徑 if (!file_exists($file_path)) { die("文件不存在!"); } $fp = fopen($file_path, "r+") or die('打開文件錯(cuò)誤'); //下載文件必須要將文件先打開。寫入內(nèi)存 $file_size = filesize($file_path); //返回的文件流 Header("Content-type:application/octet-stream"); //按照字節(jié)格式返回 Header("Accept-Ranges:bytes"); //返回文件大小 Header("Accept-Length:" . $file_size); //彈出客戶端對(duì)話框,對(duì)應(yīng)的文件名 Header("Content-Disposition:attachment;filename=" . substr($file_name, strrpos($file_name, '/') + 1)); //防止服務(wù)器瞬間壓力增大,分段讀取 $buffer = 1024; while (!feof($fp)) { $file_data = fread($fp, $buffer); echo $file_data; } fclose($fp); die("下載成功!"); }
總結(jié)
以上所述是小編給大家介紹的php 根據(jù)URL下載遠(yuǎn)程圖片、壓縮包、pdf等文件到本地,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
PDO實(shí)現(xiàn)學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了PDO實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03Laravel使用swoole實(shí)現(xiàn)websocket主動(dòng)消息推送的方法介紹
這篇文章主要給大家介紹了關(guān)于Laravel使用swoole實(shí)現(xiàn)websocket主動(dòng)消息推送的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10thinkPHP統(tǒng)計(jì)排行與分頁顯示功能示例
這篇文章主要介紹了thinkPHP統(tǒng)計(jì)排行與分頁顯示功能,結(jié)合實(shí)例形式分析了thinkPHP數(shù)據(jù)庫查詢與結(jié)果分頁顯示相關(guān)操作技巧,需要的朋友可以參考下2016-12-12淺談php數(shù)組array_change_key_case() 函數(shù)和array_chunk()函數(shù)
下面小編就為大家?guī)硪黄獪\談php數(shù)組array_change_key_case() 函數(shù)和array_chunk()函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10PHP使用Apache的偽靜態(tài)功能實(shí)現(xiàn)“網(wǎng)頁404時(shí)跳轉(zhuǎn)指定頁面
這篇文章主要介紹了PHP使用Apache的偽靜態(tài)功能實(shí)現(xiàn)“網(wǎng)頁404時(shí)跳轉(zhuǎn)指定頁面,這是比較常見的頁面,文中的方法可以很好的解決,有需要的同學(xué)可以借鑒下2021-03-03php使HTML標(biāo)簽自動(dòng)補(bǔ)全閉合函數(shù)代碼
這個(gè)網(wǎng)上找到的自動(dòng)補(bǔ)全閉合函數(shù)還挺不錯(cuò)的,它可以根據(jù)你的html內(nèi)容自己補(bǔ)全閉合,確保HTMl代碼正確2012-10-10新浪微博OAuth認(rèn)證和儲(chǔ)存的主要過程詳解
本文給大家介紹的是參考Twitter的認(rèn)證過程實(shí)現(xiàn)的新浪微博OAuth認(rèn)證和儲(chǔ)存的主要過程詳解2015-03-03PHPStorm 2020.1 調(diào)試 Nodejs的多種方法詳解
這篇文章主要介紹了PHPSTORM 2020.1 調(diào)試 Nodejs的多種方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09