php的$_FILES的临时储存文件与回收机制实测过程
2015-01-24信息快讯网
上传文件是怎么个原理,大概的想了下,应该是一种回收机制:点击了临时文件空间,那么,php自身应该自己维护这块空间的回收,具体的测试过程如下,感兴趣的朋友可以参考下哈
我想有跟我一样的想法的人会这样处理的: 上传的文件只是想临时使用,不需要把原文件保存备用,如resize之类的操作,且这些后期的操作会出现在第二轮从客户端请求时才操作的,如先上传,把上传的临时文件路径返回到浏览器,用户点击后再对这个临时文件进行操作;可是在实际的实现中发现,这个临时文件在二轮请求时,竟然不存在了,跑到临时文件夹中查看也没有找到.我在某q群中也遇到有人问过这个问题,导致的原因也是跟我的这个实现想法差不多.所以,就有个疑惑,上传文件是怎么个原理?
不想去看php的实现代码,我大概的想了下,应该是一种回收机制:点击了临时文件空间,那么,php自身应该自己维护这块空间的回收;
于是自己尝试上传了一下极大的文件,大到足够让php运行很长时间,我以为我会看到它出现在临时文件夹中.可惜的是,我竟然没有看到它的身影,直到php返回:因为此文件超过上传限制;然后我使用小文件上传打印出它的临时文件夹路径,发现它是以php开头,以tmp结束的文件命名方式;
我想了个方式,使用while卡住上传php的本次进程一定的时间再返回,这回我看到了临时文件夹中的临时文件,确实是以php**.tmp这样的命名,如图
如果在php运行的过程中使用刷新页面的非正常结束php的方式来中止php解析话,那么这个临时文件就会永久的保留,
如果php是正常的结束话,这个文件会在php的结束时删除.
同时我感觉到这个文件应该是在上传完成后再出现的:从我上传大文件看不到它的身影推断;
所以,php的临时文件维护方式是php一结束就回收资源,想在第二轮请求使用这个文件话,应该自己移动后进行维护此文件,
在本次测试中,并没有测试php include多个嵌套情况时,在什么时机下进行回收的.
PHP临时文件的安全性分析
PHP动态生成javascript文件的2个例子
php实现数组筛选奇数和偶数示例
php求正负数数组中连续元素最大值示例
PHP入门经历和学习过程分享
Session的工作机制详解和安全性问题(PHP实例讲解)
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
php实现批量下载百度云盘文件例子分享
PHP按行读取、处理较大CSV文件的代码实例
PHP读取大文件的类SplFileObject使用介绍
关于PHP的curl开启问题探讨
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
php的memcache类分享(memcache队列)
php的declare控制符和ticks教程(附示例)
php的array数组和使用实例简明教程(容易理解)
析构函数与php的垃圾回收机制详解
PHP 伪静态技术原理以及突破原理实现介绍
php图像处理函数大全(推荐收藏)
PHP 获取远程文件大小的3种解决方法
深入Nginx + PHP 缓存详解
基于PHP中的常用函数回顾
PHP 获取文件权限函数介绍
php打开文件fopen函数的使用说明
如何利用PHP执行.SQL文件
浅析PHP的ASCII码转换类
PHP的基本常识小结
解析PHP实现下载文件的两种方法
解析PHP的session过期设置
PHP垃圾回收机制引用计数器概念分析
解析thinkphp的左右值无限分类
数组与类使用PHP的可变变量名需要的注意的问题
深入解析PHP垃圾回收机制对内存泄露的处理
php中使用临时表查询数据的一个例子