<img src="www.youerw.com" onerror=a())>这段代码会在img标签所对应的src的连接下载完调用onerror,然后调用a();
但是由于基于项目的需求,需要在页面中去下载一个文件,可能文件比较大,全部下载完需要1min,但是还不想等那么长时间,只想下载一定时间(例如10s),然后统计下这10s下载了www.youerw.com的文件的大小.
问:1、怎么实现10s的下载时间?我想到的是定时器定10s,然后把这个img的src设置为空,还没有去测试!
2、如果第一步已经实现了,怎么去统计这10s内,www.youerw.com下载了多少字节???(这个问题比较重要)
一般情况下当输出完头以后就直接将整个文件输出出去
通常用的是 ceho、print 有的干脆用 readfile
这样 php 就没有机会去判断用户是否终止了下载
你需要在循环中用较小的块,通过 sprintf 输出文件内容
springf 函数会返回一个表示输出了多少字符的数。你可以累计这个数,并与文件长度进行比较
从而判断下载是否完成
基于http是没办法做到的。比如服务器返回了2000个字节让你下载保存,这时候你在你在浏览器点了取消按钮,或者下载到一半取消,再或者下载完成,这些个动作只在客户端浏览器执行,并不会将状态通知服务器。