php的$_FILES的临时储存文件与回收机制实测过程

yizhihongxing
  1. 什么是$_FILES的临时储存文件

在使用PHP上传文件时,文件会被临时储存在服务器上,保存的路径是在php.ini配置文件中定义的。在PHP脚本中,可以通过$_FILES这个全局变量来获取文件信息,并将文件从临时路径移动到目标位置。临时存储文件在上传后会自动删除,因此不需要手动清理。

  1. $_FILES的临时储存文件回收机制

$_FILES的临时储存文件回收机制由PHP的垃圾回收器GC(Garbage Collection)负责处理。当PHP进程执行的脚本结束时,垃圾回收器会自动扫描临时上传文件的目录,对超过指定时间(默认为24小时)的临时文件进行删除。

  1. 实测过程

为了验证PHP的$_FILES的临时储存文件和回收机制的有效性,我们可以通过以下两条示例进行验证:

示例1:上传一个文件后等待一段时间再查看临时文件是否被自动删除。

<?php
if($_FILES["file"]["error"] > 0){
    echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else{
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>

在执行上传文件的代码后,可以查看保存上传文件的临时路径,如tmp/phpu0IGqy。然后等待一段时间(超过24小时),再次查看该目录下是否还有该文件。如果文件已经自动删除,说明PHP的$_FILES的临时储存文件回收机制有效。

示例2:上传大文件时,临时文件是否会占满磁盘空间。

<?php
$max_upload_size = ini_get('upload_max_filesize');
$max_post_size = ini_get('post_max_size');
$memory_limit = ini_get('memory_limit');
$tmp_size = $_FILES['file']['size'];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if ($tmp_size > 0) {
        if ($tmp_size <= (int)$max_upload_size && $tmp_size <= (int)$max_post_size) {
            echo "File uploaded.";
        } else {
            echo "File size exceeds the maximum allowed size.";
        }
    } else {
        echo "Failed to upload file.";
    }
} else {
    echo "<form method='POST' enctype='multipart/form-data'>
    <input type='hidden' name='MAX_FILE_SIZE' value='" . $max_upload_size . "' />
    <input type='file' name='file' />
    <input type='submit' value='Upload!' />
    </form>";
}
?>

在执行上传大文件的代码后,可以通过检查临时文件的大小来确定临时文件是否占满了磁盘空间。如果临时文件占满了磁盘,表示$_FILES的临时储存文件回收机制不生效或存在其他问题。此时需要手动清理临时文件以释放磁盘空间。

通过以上两个示例的测试,可以对PHP的$_FILES的临时储存文件和回收机制有一个深入的了解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php的$_FILES的临时储存文件与回收机制实测过程 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php 判断字符串中是否包含html标签

    要判断一个字符串中是否包含 HTML 标签,有多种方法可以实现。 方法一:使用正则表达式 使用正则表达式可以很方便地判断字符串中是否包含 HTML 标签。这里介绍两种常见的正则表达式方法: 方法一-1:使用preg_match() if (preg_match(‘/<[^>]+>/’, $str)) { echo "字符串中包含 …

    PHP 2023年5月26日
    00
  • PHP写MySQL数据 实现代码

    下面是PHP写MySQL数据的完整攻略: 前置条件 在开始编写代码之前,需要确保已经完成以下操作: 安装并启动了 MySQL 数据库。 安装了 PHP。 创建数据库和表 在开始编写 PHP 代码之前,需要先创建数据库和表。可以通过以下 SQL 语句来完成: CREATE DATABASE dbname; USE dbname; CREATE TABLE ta…

    PHP 2023年5月27日
    00
  • 将一维或多维的数组连接成一个字符串的php代码

    将一维或多维的数组连接成一个字符串是很常见的需求,可以使用PHP的implode()函数来实现。下面是完整的攻略: implode()函数 implode()函数可以将数组的值连接成一个字符串。接受两个参数:第一个参数是连接字符,第二个参数是要连接的数组。 一维数组的连接 下面是将一个一维数组连接成一个字符串的PHP代码: $array = array(‘f…

    PHP 2023年5月26日
    00
  • PHP 实现explort() 功能的详解

    这里是关于 “PHP 实现 explode() 功能的详细攻略” 的完整说明: 1. 什么是 explode() 函数? explode() 函数是 PHP 中的一个用于字符串操作的函数,它能够将一个字符串按照指定的分隔符将其分割成多个子串,最终返回一个字符串数组。这个函数的语法如下: array explode ( string $delimiter , …

    PHP 2023年5月27日
    00
  • php计算程序运行时间的简单例子分享

    好的!下面我将分享一篇关于如何在php中计算程序运行时间的攻略,希望能对你有所帮助。 PHP计算程序运行时间的简单例子分享 在实际的开发过程中,有时候需要测量脚本的执行时间,以判断其运行效率。而php提供了一种内置函数来计算程序的运行时间,那就是microtime()函数。 microtime()函数的介绍 microtime()函数用于返回当前的Unix时…

    PHP 2023年5月23日
    00
  • 早安微信公众号消息推送最新版(国外城市、国内每日新闻)

      给女友的微信公众号消息推送 跟上次的大致相同、新增了每日新闻、国外天气,修改了一部分代码 一、注册易客云 地址:http://www.yiketianqi.com/user/register 复制下面的代码到百度云函数代码编辑页 <?php $appId = ‘2323232’; //对应自己的appId $appSecret = ‘3434444…

    PHP 2023年4月18日
    00
  • 两种设置php载入页面时编码的方法

    当运行 PHP 脚本时,页面的编码格式至关重要,因为它确定了页面中的字符集类型。在 PHP 中设置页面编码格式的方法有两种: 在代码中设置页面编码格式 可以通过在 PHP 代码中添加一个特殊的标记来设置页面的编码格式,该标记告诉服务器该页面的字符集类型。这种方法非常简单,你只需要在 php 文件的开头添加以下代码块: header(‘Content-Type…

    PHP 2023年5月26日
    00
  • 微信怎么发语音红包 微信语音红包小程序图文使用教程

    微信怎么发语音红包 微信语音红包小程序图文使用教程 前言 微信语音红包是微信在红包功能基础上推出的一项新功能,旨在让用户在传递节日祝福的同时,更加便利地赠送红包。本文将详细讲解微信语音红包的使用方法和操作流程,供大家参考。 步骤一:打开红包小程序 微信语音红包可以通过微信红包小程序进行发送和收取。首先,我们需要在微信中搜索“微信红包小程序”,并打开该小程序。…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部