溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

php怎么根據(jù)URL下載遠(yuǎn)程圖片、壓縮包、pdf等文件到本地

發(fā)布時(shí)間:2021-08-11 21:46:03 來(lái)源:億速云 閱讀:489 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“php怎么根據(jù)URL下載遠(yuǎn)程圖片、壓縮包、pdf等文件到本地”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“php怎么根據(jù)URL下載遠(yuǎn)程圖片、壓縮包、pdf等文件到本地”吧!

1、此方法可以下載圖片、壓縮包、pdf(親測(cè)),應(yīng)該所有類(lèi)型的文件都可以下載到本地,可以試一下

//遠(yuǎn)程路徑,名稱(chēng),文件后綴
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銀翹片說(shuō)明書(shū).rar';
  $file_name = iconv("utf-8","gbk//IGNORE",$file_name); // 特別注意!特別注意!特別注意這里,windows下必須開(kāi)轉(zhuǎn)碼,不然直接文件不存
  $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_name;// 比如windows下這里我的是 "D:/web/public/uploads/rar/2009323162920-維C銀翹片說(shuō)明書(shū).rar"
  //判斷如果文件存在,則跳轉(zhuǎn)到下載路徑
  if (!file_exists($file_path)) {
    die("文件不存在!");
  }
  $fp = fopen($file_path, "r+") or die('打開(kāi)文件錯(cuò)誤');  //下載文件必須要將文件先打開(kāi)。寫(xiě)入內(nèi)存
  $file_size = filesize($file_path);
  //返回的文件流
  Header("Content-type:application/octet-stream");
  //按照字節(jié)格式返回
  Header("Accept-Ranges:bytes");
  //返回文件大小
  Header("Accept-Length:" . $file_size);
  //彈出客戶(hù)端對(duì)話(huà)框,對(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("下載成功!");
}

感謝各位的閱讀,以上就是“php怎么根據(jù)URL下載遠(yuǎn)程圖片、壓縮包、pdf等文件到本地”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)php怎么根據(jù)URL下載遠(yuǎn)程圖片、壓縮包、pdf等文件到本地這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI