欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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 );
问题是当我执行下载的同时再做其他动作的时候,就会停止响应,然后等文件下载完毕后再执行操作,在本地或者远端服务器都是这样,请问这是为什么呀?
谢谢

回复讨论(解决方案)

如果没有使用 session 应该不会出现你说的现象

;
问题是当我执行下载的同时再做其他动作的时候,就会停止响应,然后等文件下载完毕后再执行操作

其他动作是指?停止响应的是那方?

代码没贴全,多半在session上。如此保密。我就不说透了。

没什么可保密的,我的程序是点击一个文件链接,然后通过JS 把一个 FORM 提交,FORM提交的网页就是下载页,也就是上面我贴出来的东西,当然,下载页是有 session 的
请问为什么使用 session 会是网页停止响应呢?


;
问题是当我执行下载的同时再做其他动作的时候,就会停止响应,然后等文件下载完毕后再执行操作

其他动作是指?停止响应的是那方?
就是比如我的页面有个按钮通过AJAX添加联系人,就没响应,或者点击回首页也没响应

是不是由于我的下载页有SESSION, 会阻止其他session的调用呀