Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung von Beispielen für das Herunterladen großer Remote-Dateien in PHP

Detaillierte Erläuterung von Beispielen für das Herunterladen großer Remote-Dateien in PHP

墨辰丷
墨辰丷Original
2018-05-21 14:27:121721Durchsuche

Der folgende Editor zeigt Ihnen ein Beispiel für das Herunterladen einer großen Remote-Datei in PHP (Ermitteln der Größe der Remote-Datei). Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor, um einen Blick darauf zu werfen

Kein Unsinn mehr, gehen Sie einfach zum Code

<?php
  // 暂不支持断点续传
  // $url = &#39;http://www.mytest.com/debian.iso&#39;; 不知道为何获取本地文件大小为0
  $url = &#39;http://192.168.8.93/download/vm-672/18/0.vmdk&#39;;
  $file = basename($url);
  $header = get_headers($url, 1);
  $size = $header[&#39;Content-Length&#39;];

  $fp = fopen($url, &#39;rb&#39;);
  if ($fp === false) exit(&#39;文件不存在或打开失败&#39;);

  header(&#39;Content-Description: File Transfer&#39;);
  header(&#39;Content-Type: application/octet-stream&#39;);
  header(&#39;Content-Disposition: attachment; filename="&#39;.$file.&#39;"&#39;);
  header(&#39;Content-Transfer-Encoding: binary&#39;);
  header(&#39;Expires: 0&#39;);
  header(&#39;Cache-Control: must-revalidate, post-check=0, pre-check=0&#39;);
  header(&#39;Pragma: public&#39;);
  header(&#39;Content-Length: &#39; . $size);

  ob_clean();
  ob_end_flush();
  set_time_limit(0);
  
  $chunkSize = 1024 * 1024;
  while (!feof($fp)) {
    $buffer = fread($fp, $chunkSize);
    echo $buffer;
    ob_flush();
    flush();
  }
  fclose($fp);
  exit;

Verwandte Empfehlungen:

PHP-DownloadRemote-DateiDetaillierte Definition und Verwendung der Klasse

Ob PHPRemote-DateiBeurteilungsmethode

Beispielanalyse, wie PHP bestimmt, ob lokale und Remote-Datei vorhanden sind

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für das Herunterladen großer Remote-Dateien in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn