91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用php怎么限制文件的下載速度

發布時間:2020-12-18 15:33:12 來源:億速云 閱讀:216 作者:Leah 欄目:開發技術

利用php怎么限制文件的下載速度?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

首先來看看利用php限制文件下載速度的代碼:

<?php 
// 將發送到客戶端的本地文件 
$local_file='abc.zip'; 
// 文件名 
$download_file='your-download-name.zip'; 
// 設置下載速率(=> 31.2 kb/s) 
$download_rate=31.2; 
if(file_exists($local_file)&&is_file($local_file)){ 
 header('Cache-control: private');// 發送 headers 
 header('Content-Type: application/octet-stream'); 
 header('Content-Length: '.filesize($local_file)); 
 header('Content-Disposition: filename='.$download_file); 
 flush();// 刷新內容 
 $file=fopen($local_file,"r"); 
 while (!feof($file)){ 
  print fread($file,round($download_rate*1024));// 發送當前部分文件給瀏覽者 
  flush();// flush 內容輸出到瀏覽器端 
  sleep(1);// 終端1秒后繼續 
 } 
 fclose($file);// 關閉文件流 
}else{ 
 die('Error: 文件 '.$local_file.' 不存在!'); 
}

下面對以上代碼做一些分析:
1、把文件下載速度限制為31.2kb/s,即每秒僅向客戶端發送20.5kb的文件流,直到發送完整個文件為止。如果沒有該限制,那么文件將以流的形式一起發送到客戶端,有多少發送多少,這會出現什么情況?假如文件大小為2m,那么一下子把2m的數據流傳送過去,這將可能導致網絡堵塞而中斷腳本的執行,這種下載方式是不能在實際應用中采用的。
2、技術方面,首先添加頭文件,聲明Content-Type為application/octet-stream,表示該請求將以流的方式發送,并且聲明Content-Length,即聲明了文件流的大小。在代碼里使用了flush(),flush函數作用是刷新php程序的緩沖,實現print動態輸出。

另外提醒一下的是:巧妙利用上述代碼,還可以實現客戶端顯示文件下載進度條的功能,有興趣的朋友可以試試,這里就不多寫了。

關于利用php怎么限制文件的下載速度問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

茌平县| 竹北市| 婺源县| 墨玉县| 汶上县| 六枝特区| 油尖旺区| 广平县| 庄浪县| 望谟县| 扎囊县| 思茅市| 资中县| 辉南县| 湖口县| 沙田区| 西华县| 科尔| 澄江县| 九台市| 东阳市| 柯坪县| 南陵县| 盈江县| 湖州市| 东至县| 灌阳县| 日喀则市| 墨脱县| 中方县| 阿合奇县| 东宁县| 新郑市| 衡山县| 上蔡县| 霍山县| 凉山| 平遥县| 三河市| 遵化市| 广河县|