PHP 下载时网页无法执行其他动作
程序员文章站
2022-06-05 13:58:35
...
PHP 服务器 Buffer 我有一个页面是下载的,代码如下
Header ( 'Cache-Control: no-cache, must-revalidate' );
Header ( 'Content-type: application/octet-stream' );
Header ( 'Accept-Ranges: bytes' );
Header ( 'Content-Length:'.$this->_filesizebytes );
Header ( 'Content-Disposition: attachment; filename="'.$this->_filename.'"' );
$file = fopen ( $this->_fileFullPath, "r" );
$buffer = round(1024);
while ( ! feof ( $file ) ) {
echo fread ( $file, $buffer );
flush();
}
fclose ( $file );
问题是当我执行下载的同时再做其他动作的时候,就会停止响应,然后等文件下载完毕后再执行操作,在本地或者远端服务器都是这样,请问这是为什么呀?
谢谢
Header ( 'Cache-Control: no-cache, must-revalidate' );
Header ( 'Content-type: application/octet-stream' );
Header ( 'Accept-Ranges: bytes' );
Header ( 'Content-Length:'.$this->_filesizebytes );
Header ( 'Content-Disposition: attachment; filename="'.$this->_filename.'"' );
$file = fopen ( $this->_fileFullPath, "r" );
$buffer = round(1024);
while ( ! feof ( $file ) ) {
echo fread ( $file, $buffer );
flush();
}
fclose ( $file );
问题是当我执行下载的同时再做其他动作的时候,就会停止响应,然后等文件下载完毕后再执行操作,在本地或者远端服务器都是这样,请问这是为什么呀?
谢谢
回复讨论(解决方案)
如果没有使用 session 应该不会出现你说的现象
;
问题是当我执行下载的同时再做其他动作的时候,就会停止响应,然后等文件下载完毕后再执行操作
其他动作是指?停止响应的是那方?
代码没贴全,多半在session上。如此保密。我就不说透了。
没什么可保密的,我的程序是点击一个文件链接,然后通过JS 把一个 FORM 提交,FORM提交的网页就是下载页,也就是上面我贴出来的东西,当然,下载页是有 session 的
请问为什么使用 session 会是网页停止响应呢?
;
问题是当我执行下载的同时再做其他动作的时候,就会停止响应,然后等文件下载完毕后再执行操作
其他动作是指?停止响应的是那方?
就是比如我的页面有个按钮通过AJAX添加联系人,就没响应,或者点击回首页也没响应
是不是由于我的下载页有SESSION, 会阻止其他session的调用呀
上一篇: 智能建站的原理是什么