php的$_FILES的临时储存文件与回收机制实测过程


Posted in PHP onJuly 12, 2013

我想有跟我一样的想法的人会这样处理的: 上传的文件只是想临时使用,不需要把原文件保存备用,如resize之类的操作,且这些后期的操作会出现在第二轮从客户端请求时才操作的,如先上传,把上传的临时文件路径返回到浏览器,用户点击后再对这个临时文件进行操作;可是在实际的实现中发现,这个临时文件在二轮请求时,竟然不存在了,跑到临时文件夹中查看也没有找到.

我在某q群中也遇到有人问过这个问题,导致的原因也是跟我的这个实现想法差不多.所以,就有个疑惑,上传文件是怎么个原理?
不想去看php的实现代码,我大概的想了下,应该是一种回收机制:点击了临时文件空间,那么,php自身应该自己维护这块空间的回收;

于是自己尝试上传了一下极大的文件,大到足够让php运行很长时间,我以为我会看到它出现在临时文件夹中.可惜的是,我竟然没有看到它的身影,直到php返回:因为此文件超过上传限制;然后我使用小文件上传打印出它的临时文件夹路径,发现它是以php开头,以tmp结束的文件命名方式;

我想了个方式,使用while卡住上传php的本次进程一定的时间再返回,这回我看到了临时文件夹中的临时文件,确实是以php**.tmp这样的命名,如图
php的$_FILES的临时储存文件与回收机制实测过程 
如果在php运行的过程中使用刷新页面的非正常结束php的方式来中止php解析话,那么这个临时文件就会永久的保留,
如果php是正常的结束话,这个文件会在php的结束时删除.

同时我感觉到这个文件应该是在上传完成后再出现的:从我上传大文件看不到它的身影推断;
所以,php的临时文件维护方式是php一结束就回收资源,想在第二轮请求使用这个文件话,应该自己移动后进行维护此文件,
在本次测试中,并没有测试php include多个嵌套情况时,在什么时机下进行回收的.

PHP 相关文章推荐
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
PHP Streams(流)详细介绍及使用
May 12 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 PHP
php图像处理函数大全(推荐收藏)
Jul 11 #PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 #PHP
深入Nginx + PHP 缓存详解
Jul 11 #PHP
基于PHP中的常用函数回顾
Jul 11 #PHP
PHP 获取文件权限函数介绍
Jul 11 #PHP
浅析php学习的路线图
Jul 10 #PHP
php对图像的各种处理函数代码小结
Jul 08 #PHP
You might like
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
理解javascript闭包
2015/12/15 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
新手简单了解vue
2019/05/29 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Django REST为文件属性输出完整URL的方法
2017/12/18 Python
详解python中的线程
2018/02/10 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
护士岗前培训自我评鉴
2014/02/28 职场文书
年终晚会主持词
2014/03/25 职场文书
校园文明倡议书
2014/05/16 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
小学庆六一活动总结
2014/08/28 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
精神病医院见习报告
2014/11/03 职场文书
爱国主题班会教案
2015/08/14 职场文书