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 相关文章推荐
PHP5.0对象模型探索之抽象方法和抽象类
Sep 05 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
php MessagePack介绍
Oct 06 PHP
php 伪静态之IIS篇
Jun 02 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP基本语法实例总结
Sep 09 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
在laravel中使用with实现动态添加where条件
Oct 10 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的session cookie错误
2009/08/09 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
中止javascript执行的方法
2014/02/14 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
python实现折半查找和归并排序算法
2017/04/14 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
python图形用户接口实例详解
2019/12/16 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
Spy++的使用方法及下载教程
2021/01/29 Python
法语专业求职信
2014/07/20 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
创业计划书之寿司
2019/07/19 职场文书
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android