zoukankan      html  css  js  c++  java
  • session_write_close() 用法

    1.需要session控制的大文件下载,防止因为占用session文件时间太久,导致其他页面的session无法执行

    session_write_close() worked as a lifesaver for me when automatically uploading files to a user (forcing a download instead of a link). If files are large, and since session_start() does not allow another page using session_start() to proceed until it's done, i was not able to upload more than one file at a time. By using session_write_close() before beginning the file upload, my users can now download as many big files as they like, at the same time. Example:
    <?
    session_start();
    /* Do session stuff here; security; logging; etc. */
    session_write_close();
    /* NOW write out the requested file. */
    header("Content-type: audio/x-mpeg"); /* or whatever type */
    header("Content-Disposition: attachment; filename=" . $filename);
    header("Content-Length: " . $filesize);
    header("Content-Transfer-Encoding: binary ");
    header("Pragma: no-cache");
    header("Expires: 0");
    $file_contents = file_get_contents($filepath);
    print($file_contents);
    ?>

    2.保存当前的session变化,防止由于header页面跳转导致修改的session内容没有保存,被丢失

    This function is essencial when you change $_SESSION[] variables and then, at some poit in the middle of the script, you send an header("Location: ) function to the browser, because in this case the session variables may not be saved before the browser change to the new page.
    To prevent from lossing session data, allways use session_write_close before this header function. session_write_close will force session data to be saved before the browser change to the new page.
    Hope this will help you not to loose 1 day wondering why people could not authenticate or make other changes in session vars in your site.

  • 相关阅读:
    maven 利用 profile 进行多环境配置
    基于 TrueLicense 的项目证书验证
    SpringMVC 自定义参数解析器.
    Spring MVC -- 基于注解的控制器
    Spring MVC -- Spring MVC入门
    Spring MVC -- MVC设计模式(演示4个基于MVC框架的案例)
    Spring MVC -- Spring框架入门(IoC、DI以及XML配置文件)
    Servlet2.5版本和Servlet3.0版本
    Java基础 -- 深入理解泛型
    Java基础 -- 深入理解Java类型信息(Class对象)与反射机制
  • 原文地址:https://www.cnblogs.com/jking10/p/3821066.html
Copyright © 2011-2022 走看看