首页 > php 文件限速下载代码

php 文件限速下载代码

php
include("DBDA.class.php");
$db = new DBDA();
$bs = $_SERVER["QUERY_STRING"];  //获取由提交界面传过来的参数
$bss = substr($bs,3);  //截取 = 后面的值$sql = "select video from shangpin where id='{ $bss}'";  //获取视频文件路径
$str = $db->StrQuery($sql);
$wjm = substr($str,13);  //截取文件名
$lj = substr($str,0,13);  //截取文件所在文件夹路径$file_name = $wjm;   //文件名
//用以解决中文不能显示出来的问题  
$file_name=iconv("utf-8","gb2312",$file_name);  
$file_sub_path=$_SERVER['DOCUMENT_ROOT'].$lj;   //获取当前运行脚本所在的文档根目录
$file_path=$file_sub_path.$file_name;   //拼成一个完整的文件所在的路径// $file = include path
if(file_exists($file_path))  //判断文件是否存在
{header('Content-Description: File Transfer');       //header函数是提交给表头的是一些下载的规格header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename='.basename($file_path));header('Content-Transfer-Encoding: binary');header('Expires: 0');header('Cache-Control: must-revalidate, post-check=0, pre-check=0');header('Pragma: public');header('Content-Length: ' . filesize($file_path));ob_clean();   //ob_clean这个函数的作用就是用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的文件,那么想要访问正确,就要经常清除缓冲区flush();   //ob_flush()和flush()的区别。前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释放出来的数据发送到浏览器。所以当缓冲存在的时候,我们必须ob_flush()和flush()同时使用。$file = fopen($file_path, "r");  //打开指定的文件,r 代表只读,如果找不到,返回falsewhile(!feof($file))  //判断是否存在
    {// send the current file part to the browserprint fread($file, round(3000 * 1024));  //先顶下载速度为3MB// flush the content to the browserflush();  //传给浏览器// sleep one secondsleep(1);  //等待1秒
    }fclose($file);  //关闭文件/*readfile($file_path);  //也可以用这种方法,发送完表头直接输出,不过没有限速exit;*/
}

 

转载于:https://www.cnblogs.com/zxl89/p/6130252.html

更多相关:

  • 本例的初始文件是4位数字 (e.g. 0001.png),想在前面补1个0 (00001.png) import numpy as np import cv2 from ptsemseg.utils import recursive_glob import osroot = "./src/" root1 = "./dst/" fil...

  • 方法一: QString file("sample.jpg"); if (file.contains(".jpg") ||      file.contains(".bmp") ||      file.contains(".png")) {     qDebug()<<"这是图片。"; } 方法二: QString file_...

  • shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:“>/dev/null 2>&1” 为五部分。 1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt 2:/dev/null 代表空设备文件 3:2> 表示stderr标准错误...

  • 第三步,使用JODConverter将office文档转换为pdf       JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用 OpenOffice来进行转换工作,它能进行以下的转换工作:      1.Microsoft Office格式转换为OpenDucument...

  • 目录结构:client:#!/usr/bin/env python# -*-coding:utf-8 -*-import socket, struct, jsondownload_dir = r'D:Pythonpython_learninggdcodepart32网络编程文件传输clientdownload'gd...

  • Open3D是一个开源库,支持快速开发和处理3D数据。Open3D在c++和Python中公开了一组精心选择的数据结构和算法。后端是高度优化的,并且是为并行化而设置的。本系列学习计划有Blue同学作为发起人,主要以Open3D官方网站的教程为主进行翻译与实践的学习计划。点云PCL公众号作为免费的3D视觉,点云交流社区,期待有使用Op...

  • 业务场景: 我在一个bash脚本中修改了PATH变量的内容,并将其保存到/etc/profile文件中,同时执行了 source /etc/profile 但是当脚本退出时,我发现PATH变量还是没有修改生效,但是,如果我在命令行再直接执行 source /etc/profile 才发现PATH生效了。 请问,这是什么原因呢?...

  • 给定一个二叉树与整数sum,找出所有从根节点到叶结点的路径,这些路 径上的节点值累加和为sum 即创建一个二叉树,要求二叉树中有一个路径从根节点到叶节点到路径加起来代表到和为 给定的sum 如下二叉树 给定路径之和为18,则需要输出两条路径: [1,4,5,8] [1,4,6,7] 同样,这个过程我们可以使用先序深度优先搜索,同...

  • export PATH=$PATH:/usr/local/php/bin 转载于:https://www.cnblogs.com/ttiandeng/p/6554902.html...

  • 2019独角兽企业重金招聘Python工程师标准>>> 每台计算机安装程序不同,环境变量path会有不同,若误删了环境变量path,可以如下完美解决.   Win+R 输入regedit打开注册表(开始-运行里输入regedit)  找到  HKEY_LOCAL_MACHINESYSTEMControlSet002...