Maison > développement back-end > tutoriel php > Exemple de partage de code expliquant comment télécharger des fichiers volumineux distants en PHP et obtenir la taille du fichier

Exemple de partage de code expliquant comment télécharger des fichiers volumineux distants en PHP et obtenir la taille du fichier

黄舟
Libérer: 2023-03-10 18:34:01
original
3430 Les gens l'ont consulté

L'éditeur suivant vous apportera un exemple de téléchargement d'un gros fichier distant en PHP (obtention de la taille du fichier distant ). L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un oeil

Sans plus attendre, passons directement au 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;
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal