<small id='2qaau'></small><noframes id='2qaau'>

      <tfoot id='2qaau'></tfoot>
    1. <i id='2qaau'><tr id='2qaau'><dt id='2qaau'><q id='2qaau'><span id='2qaau'><b id='2qaau'><form id='2qaau'><ins id='2qaau'></ins><ul id='2qaau'></ul><sub id='2qaau'></sub></form><legend id='2qaau'></legend><bdo id='2qaau'><pre id='2qaau'><center id='2qaau'></center></pre></bdo></b><th id='2qaau'></th></span></q></dt></tr></i><div id='2qaau'><tfoot id='2qaau'></tfoot><dl id='2qaau'><fieldset id='2qaau'></fieldset></dl></div>
      • <bdo id='2qaau'></bdo><ul id='2qaau'></ul>

    2. <legend id='2qaau'><style id='2qaau'><dir id='2qaau'><q id='2qaau'></q></dir></style></legend>

      1. 使用 PHP 限制下载速度

        时间:2023-08-20
        <legend id='HztbG'><style id='HztbG'><dir id='HztbG'><q id='HztbG'></q></dir></style></legend>

              • <bdo id='HztbG'></bdo><ul id='HztbG'></ul>

                <small id='HztbG'></small><noframes id='HztbG'>

                  <tbody id='HztbG'></tbody>

                <tfoot id='HztbG'></tfoot>
                <i id='HztbG'><tr id='HztbG'><dt id='HztbG'><q id='HztbG'><span id='HztbG'><b id='HztbG'><form id='HztbG'><ins id='HztbG'></ins><ul id='HztbG'></ul><sub id='HztbG'></sub></form><legend id='HztbG'></legend><bdo id='HztbG'><pre id='HztbG'><center id='HztbG'></center></pre></bdo></b><th id='HztbG'></th></span></q></dt></tr></i><div id='HztbG'><tfoot id='HztbG'></tfoot><dl id='HztbG'><fieldset id='HztbG'></fieldset></dl></div>
                1. 本文介绍了使用 PHP 限制下载速度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我在 Google 上发现了一些 PHP 脚本来限制文件的下载速度,但文件下载速度为 10 Mbps,或者如果我设置的下载速度为 80 kbps,5 mb 后,它会停止下载.

                  I found on Google some PHP scripts to limit the download speed of a file, but the file download at 10 Mbps or if it download at 80 kbps as i set it, after 5 mb, it stops downloading.

                  谁能告诉我哪里可以找到好的 PHP 下载限速脚本?

                  Can some one tell me where I can found a good PHP download speed limit script please?

                  非常感谢

                  --- 编辑---

                  代码如下:

                  <?php
                  set_time_limit(0);
                  // change this value below
                  $cs_conn = mysql_connect('localhost', 'root', '');
                  mysql_select_db('shareit', $cs_conn);
                  
                  // local file that should be send to the client
                  $local_file = $_GET['file'];
                  // filename that the user gets as default
                  $download_file = $_GET['file'];
                  
                  // set the download rate limit (=> 20,5 kb/s)
                  $download_rate = 85; 
                  if(file_exists($local_file) && is_file($local_file)) {
                      // send headers
                      header('Cache-control: private');
                      header('Content-Type: application/octet-stream'); 
                      header('Content-Length: '.filesize($local_file));
                      header('Content-Disposition: filename='.$download_file);
                  
                      // flush content
                      flush();    
                      // open file stream
                      $file = fopen($local_file, "r");    
                      while(!feof($file)) {
                  
                          // send the current file part to the browser
                          print fread($file, round($download_rate * 1024));    
                  
                          // flush the content to the browser
                          flush();
                  
                          // sleep one second
                          sleep(1);    
                      }    
                  
                      // close file stream
                      fclose($file);}
                  else {
                      die('Error: The file '.$local_file.' does not exist!');
                  }
                  
                  
                  
                  
                  if ($dl) {
                  } else {
                      header('HTTP/1.0 503 Service Unavailable');
                      die('Abort, you reached your download limit for this file.');
                  }
                  ?>
                  

                  推荐答案

                  下载 5MB 后停止的原因是因为以 80KB/s 的速度下载 5MB 需要 60 多秒.大多数限速器"脚本使用 sleep() 在发送一个块后暂停一段时间,继续,发送另一个块,然后再次暂停.但是如果脚本已经运行了一分钟或更长时间,PHP 会自动终止它.发生这种情况时,您的下载会停止.

                  The reason your download stops after 5MB is because it takes over 60 seconds to download 5MB at 80KB/s. Most of those "speed limiter" scripts use sleep() to pause for a while after sending a chunk, resume, send another chunk, and pause again. But PHP will automatically terminate a script if it's been running for a minute or more. When that happens, your download stops.

                  您可以使用 set_time_limit() 来防止您的脚本被终止,但某些网络主机不允许您这样做.在那种情况下,你就不走运了.

                  You can use set_time_limit() to prevent your script from being terminated, but some web hosts will not allow you to do this. In that case you're out of luck.

                  这篇关于使用 PHP 限制下载速度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:从 Ajax 调用时文件下载脚本不起作用 下一篇:如何使用PHP下载大文件(内存占用低)

                  相关文章

                2. <small id='eo9Kc'></small><noframes id='eo9Kc'>

                  <tfoot id='eo9Kc'></tfoot>
                  1. <i id='eo9Kc'><tr id='eo9Kc'><dt id='eo9Kc'><q id='eo9Kc'><span id='eo9Kc'><b id='eo9Kc'><form id='eo9Kc'><ins id='eo9Kc'></ins><ul id='eo9Kc'></ul><sub id='eo9Kc'></sub></form><legend id='eo9Kc'></legend><bdo id='eo9Kc'><pre id='eo9Kc'><center id='eo9Kc'></center></pre></bdo></b><th id='eo9Kc'></th></span></q></dt></tr></i><div id='eo9Kc'><tfoot id='eo9Kc'></tfoot><dl id='eo9Kc'><fieldset id='eo9Kc'></fieldset></dl></div>

                      <bdo id='eo9Kc'></bdo><ul id='eo9Kc'></ul>
                  2. <legend id='eo9Kc'><style id='eo9Kc'><dir id='eo9Kc'><q id='eo9Kc'></q></dir></style></legend>