<html>
<body>
<table border="1" width="300">
<tr><td width="100">文件大小</td><td width="200"><div id="filesize">未知长度</div></td></tr>
<tr><td>已经下载</td><td><div id="downloaded">0</div></td></tr>
<tr><td>完成进度</td><td><div id="progressbar" style="float:left;width:1px;text-align:center;color:#FFFFFF;background-color:#0066CC"></div><div id="progressText" style=" float:left">0%</div></td></tr>
</table>
<script type="text/javascript">
//文件长度
var filesize=0;
function $(obj) {return document.getElementById(obj);}
//设置文件长度
function setFileSize(fsize) {
filesize=fsize;
$("filesize").innerHTML=fsize;
}
//设置已经下载的,并计算百分比
function setDownloaded(fsize) {
$("downloaded").innerHTML=fsize;
if(filesize>0) {
var percent=Math.round(fsize*100/filesize);
$("progressbar").style.width=(percent+"%");
if(percent>0) {
$("progressbar").innerHTML=percent+"%";
$("progressText").innerHTML="";
} else {
$("progressText").innerHTML=percent+"%";
}
}
}
</script>
<?php
ob_start();
@set_time_limit(500);//设置该页面最久执行时间为500秒
$url="http://dldir1.qq.com/qqfile/qq/QQ7.3/15056/QQ7.3.exe";//要下载的文件
$newfname="QQ7.3.exe";//本地存放位置,也可以是D:\Test\QQ7.3,这样做在Win7下要设置相应权限
$file = fopen ($url, "rb");
if ($file) {
//获取文件大小
$filesize = -1;
$headers = get_headers($url, 1);
if ((!array_key_exists("Content-Length", $headers))) $filesize=0;
$filesize = $headers["Content-Length"];
//不是所有的文件都会先返回大小的,有些动态页面不先返回总大小,这样就无法计算进度了
if ($filesize != -1) {
echo "<script>setFileSize($filesize);</script>";//在前台显示文件大小
}
$newf = fopen ($newfname, "wb");
$downlen=0;
if ($newf) {
while(!feof($file)) {
$data=fread($file, 1024 * 8 );//默认获取8K
$downlen+=strlen($data);//累计已经下载的字节数
fwrite($newf, $data, 1024 * 8 );
echo "<script>setDownloaded($downlen);</script>";//在前台显示已经下载文件大小
ob_flush();
flush();
}
}
if ($file) {
fclose($file);
}
if ($newf) {
fclose($newf);
}
}
?>
</body>
</html>相关推荐
socket长连接demo
工作遇到的情况, 记录一个简单的保持长连接的方法,希望对自己对需要使用socket编程的童鞋有点用处。
HTML5 WebSocket长连接详细应用指南(一)
HTML5 WebSocket长连接详细应用指南 WebSocket、服务器发送时间和跨文档消息传递 WebSocket API
android socket通信demo
android和服务器使用socket通信的demo; 主要意图是为自实现信息推送做铺垫; 服务器源码使用java语言编写,请确认你的需求; android源码使用eclipse编译, 我的博客提供技术支持: http://blog.csdn.net/a774057695/article/details/47039433
一个有服务器建立长连接的demo
public class TcpLongSocket { public static final String TAG = "TcpLongSocket"; public static String HOST = "172.16.15.10"; public static int PORT = 44023; private ReadThread mReadThre...
webSocket实现Android客户端之间简单的通讯
webSocket实现Android客户端之间简单的通讯,或者群发
Socket长连接demo
Socket长连接demo
android 长连接 demo,简单明了的android 长连接Socket
【实例简介】【实例截图】【核心代码】服务端代码:package com.shandiangou.sdgprotocol.lib.demo;import com.shandiangou.sdgprotocol.lib.Config;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/*** C...
尚硅谷Redis 7学习笔记
尚硅谷Redis 7学习笔记
Netty+SpringBoot 打造一个 TCP 长连接通讯方案
项目背景正文一、项目架构二、项目模块三、业务流程四、代码详解五、测试六、源码后记项目背景最近公司某物联网项目需要使用socket长连接进行消息通讯,捣鼓了一版代码上线,结果BUG不断,本猿寝食难安,于是求助度娘,数日未眠项目终于平稳运行了,本着开源共享的精神,本猿把项目代码提炼成了一个demo项目,尽量摒弃了其中丑陋的业务部分,希望与同学们共同学习进步。正文一、项目架构本项目使用了netty、re...
从理论到实践:用CST微波工作室完成单站雷达RCS仿真的完整指南
本文提供了一份利用CST微波工作室进行单站雷达RCS仿真的完整实践指南。文章深入剖析了从求解器选择(重点推荐积分方程法)、模型与材料设置、平面波激励定义到后处理分析的完整逻辑链条,旨在帮助工程师不仅完成仿真,更能理解其背后的物理原理与工程考量,从而高效、精准地评估目标的电磁散射特性。
Veeam Backup 13 通过UI界面高效备份VMware ESXi虚拟机的完整指南
本文提供了一份使用Veeam Backup 13图形化界面高效备份VMware ESXi虚拟机的完整指南。内容涵盖从环境准备、添加vCenter/ESXi主机、配置备份存储库,到创建备份任务、设置保留策略与计划,以及执行备份和验证成功的关键步骤。通过直观的UI操作,管理员可以轻松实现虚拟机数据的可靠保护与快速恢复。
HTTP 长连接(HTTP Persistent Connection)简介
HTTP 长连接(Persistent Connection)是 HTTP/1.1 的一个重要特性,它允许在一个 TCP 连接上发送多个 HTTP 请求和响应,而无需为每个请求重新建立连接。在 HTTP/1.0 中,每个请求都会建立一次独立的 TCP 连接,完成后立即关闭,这种方式称为短连接。: 抓取网络流量,观察 TCP 连接是否在多个 HTTP 请求之间保持打开状态。如果同一个 TCP 会话中有多个 HTTP 请求和响应,说明使用了长连接。如果两次请求没有重新建立连接,说明长连接生效。
【初阶】手把手教你轻松上手Denodo | 连接数据库并创建基本视图 (二)
在本教程的第二部分,我们将涵盖:连接到数据库,与创建基本视图。
java实现socket长连接_Netty-实现长连接
一个简单的长连接demo分为以下几个步骤:创建连接(Channel)发心跳包发消息,并通知其他用户一段时间没收到心跳包或者用户主动关闭之后关闭连接看似简单的步骤,里面有两个技术难点:如何保存已创建的Channel这里我们是将Channel放在一个Map中,以Channel.hashCode()作为key其实这样做有一个劣势,就是不适合水平扩展,每个机器都有一个连接数的上线,如果需要实现多用户实...
保姆级教程:DBeaver社区版安装与驱动配置(附阿里云镜像解决下载超时)
本文提供DBeaver社区版的保姆级安装教程,涵盖版本选择、安装路径设置到驱动配置优化。特别针对国内用户遇到的下载超时问题,详细介绍了如何配置阿里云镜像加速驱动下载,确保高效连接MySQL等主流数据库。
基于51单片机的贪吃蛇游戏设计
本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在CSDN下载区) 一. 实验目的 (1) 通过对C51语言的理解,编写程序实现对贪吃蛇的有效控制; (2) 通过对51单片机硬件的学习,学会运用面包板,独立按键、点阵屏等,完成对完整电路的搭建过程; (3) 通过对Proteus仿真软件的学习,实现基于STC89C52单片机的8*8点阵贪吃蛇的硬件电路仿真。 二. 实验介绍 贪吃蛇是一款经典小游戏,其游戏的规则是:玩
简单的java和python的socket通信,长连接
因为一些运算要使用到python的模型和算法,python需要和java端建立长连接。这里是一个简单的demo实现: java服务器: public class testSocket{ public static void main(String args[])throws Exception { ServerSocket serverSocket = new ServerSocket(9999); System.out.println("服务启动");
33、AI赋能5G/6G通信:LDPC码解码与强化学习技术解析
本文探讨了基于AI和强化学习的LDPC码技术在5G/6G通信中的应用。包括LAMS解码器、神经MS解码器、盲识别方法、统一极性-LDPC解码器、NNMS和SNNMS解码器、N-2D-NMS解码器、神经分层MS解码器、MAB-NS方案以及强化学习与MCTS结合的技术。这些技术在提升解码性能、降低计算复杂度和增强系统适应性方面表现出色,为未来通信系统的发展提供了强有力的支持。
java-socket长连接demo体验
一、前言 最近公司在预研设备app端与服务端的交互方案,主要方案有: 服务端和app端通过阿里iot套件实现消息的收发; 服务端通过极光推送主动给app端推消息,app通过rest接口与服务端进行交互; 服务端与app通过mqtt消息队列来实现彼此的消息交互; 服务端与app通过原生socket长连接交互。 虽然上面的一些成熟方案肯定更利于上生产环境,但它...
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
Netty——如何实现长连接
一个简单的长连接demo分为以下几个步骤:长连接流程 看似简单的步骤,里面有两个技术难点:如何保存已创建的Channel这里我们是将Channel放在一个Map中,以Channel.hashCode()作为key其实这样做有一个劣势,就是不适合水平扩展,每个机器都有一个连接数的上线,如果需要实现多用户实时在线,对机器的数量要求会很高,在这里我们不多做讨论,不同的业务场景,设计方案也是不同的,可以在长连接方案和客户端轮询方案中进行选择。如何自动关闭没有心跳的连接。
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
java netty tcp长连接_Netty笔记4-如何实现长连接
前面三章介绍了Netty的一些基本用法,这一章介绍怎么使用Netty来实现一个简单的长连接demo。 一个简单的长连接demo分为以下几个步骤:长连接流程创建连接(Channel)发心跳包发消息,并通知其他用户一段时间没收到心跳包或者用户主动关闭之后关闭连接 看似简单的步骤,里面有两个技术难点:如何保存已创建的Channel这里我们是将Channel放在一个Map中,以Chan...
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
Netty笔记4 - 如何实现长连接
前面三章介绍了Netty的一些基本用法,这一章介绍怎么使用Netty来实现一个简单的长连接demo。 关于长连接的背景知识,可以参考《如何使用Socket实现长连接》 一个简单的长连接demo分为以下几个步骤: 长连接流程 创建连接(Channel) 发心跳包 发消息,并通知其他用户 一段时间没收到心跳包或者用户主动关闭之后关闭连接 看似简单的步骤,里面有两个技术难点...
基于websocket实现长连接服务
最近做了一个长连接相关的小需求,业务场景为报告的评论。当对报告进行评论时,其他在浏览该报告的用户会得到评论的推送。具体的该功能的实现是基于公司提供的长连接的基础服务,我们只需要接入该平台,申请的得到类似appId的服务标识,并实现相应的rpc方法即可。 基于这个需求,也顺便去了解了websocket的相关内容以及如何自己实现一个websocket服务。 关于websocket的内容这里就不多说了,其是一个基于TCP的应用层协议,利用http进行握手而建立连接,最大的特点就是全双工通信,即服务端可以主动向客户
java实体类接收json对象_java-socket长连接demo体验
一、前言最近公司在预研设备app端与服务端的交互方案,主要方案有服务端和app端通过阿里iot套件实现消息的收发;服务端通过极光推送主动给app端推消息,app通过rest接口与服务端进行交互;服务端与app通过mqtt消息队列来实现彼此的消息交互;服务端与app通过原生socket长连接交互。虽然上面的一些成熟方案肯定更利于上生产环境,但它们通讯基础也都是socket长连接,所以本人主要是预研了...
JPush极光推送的原理与简单demo的实现会遇到的问题
JPush极光推送的原理与简单demo的实现会遇到的问题
581




被折叠的 条评论
为什么被折叠?



