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

WBOY
Freigeben: 2016-06-23 14:12:21
Original
766 Leute haben es durchsucht

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage