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面向对象分析设计的经验原则
Sep 20 PHP
php 不同编码下的字符串长度区分
Sep 26 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
PHP6新特性分析
Mar 03 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
PHP中for循环与foreach的区别
Mar 06 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
有关PHP 中 config.m4 的探索
Aug 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
ftp类(myftp.php)
2006/10/09 PHP
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
js继承的实现代码
2010/08/05 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
python在非root权限下的安装方法
2018/01/23 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
网络安全类面试题
2015/08/01 面试题
党性观念心得体会
2014/09/03 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
担保书怎么写 ?
2019/04/22 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书