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重新实现PHP脚本引擎内置函数
Mar 06 PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
使用PHP导出Word文档的原理和实例
Oct 21 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
ThinkPHP路由机制简介
Mar 23 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
PHP发送AT指令实例代码
May 26 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
浅谈PHP中的Trait使用方法
Mar 22 PHP
YII框架行为behaviors用法示例
Apr 26 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
PHP模板引擎SMARTY
2006/10/09 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
总结对比php中的多种序列化
2016/08/28 PHP
PHP自定义多进制的方法
2016/11/03 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JS定时器实例
2013/04/17 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
Python多继承原理与用法示例
2018/08/23 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
python频繁写入文件时提速的方法
2019/06/26 Python
python调用私有属性的方法总结
2020/07/24 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
新闻专业个人自我评价
2013/09/21 职场文书
借款协议书范本
2014/04/22 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
岗位聘任报告
2015/03/02 职场文书
卡特教练观后感
2015/06/08 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
酒店员工管理制度
2015/08/05 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python