PHP 下载时网页无法执行其他动作

WBOY
Release: 2016-06-23 14:12:21
Original
767 people have browsed it

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的调用呀

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template