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_Flame(Version:Progress)的原代码
Oct 09 PHP
谈谈PHP语法(3)
Oct 09 PHP
php字符串截取问题
Nov 28 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
PHP 时间转换Unix时间戳代码
Jan 22 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
PHP将字符分解为多个字符串的方法
Nov 22 PHP
php实现Mysql简易操作类
Oct 11 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 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
请离开include_once和require_once
2013/07/18 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
javascript 自动填写表单的实现方法
2010/04/09 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
5款非常棒的Python工具
2018/01/05 Python
python实现自动登录
2018/09/17 Python
python 实现两个线程交替执行
2020/05/02 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
python实现三壶谜题的示例详解
2020/11/02 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
物流管理专业毕业生自荐信
2014/03/04 职场文书
事业单位鉴定材料
2014/05/25 职场文书
生死抉择观后感
2015/06/09 职场文书
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS