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的单引号和双引号 字符串效率
May 27 PHP
php empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
PHP附件下载中文名称乱码的解决方法
Dec 17 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
Laravel模糊查询区分大小写的实例
Sep 29 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写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
详解webpack babel的配置
2018/01/09 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
python的id()函数介绍
2013/02/10 Python
Python中zip()函数用法实例教程
2014/07/31 Python
Python map和reduce函数用法示例
2015/02/26 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python探索之SocketServer详解
2017/10/28 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
生日邀请函范文
2014/01/13 职场文书
兴趣小组活动总结
2014/05/05 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
JavaScript中reduce()的用法
2022/05/11 Javascript