PHP:临时上传的文件何时被删除


PHP: When does the temporary uploaded files get deleted?

我正在运行WAMP服务器。在使用 PHP 上传文件时,我看到

$_FILES[tmp_name] => string 'C:'wamp'tmp'phpD382.tmp' (length=23)

我去那个文件夹,它是空的。我确保我的"显示隐藏文件"已从我的"文件夹选项"打开,但我看不到它。它到底在哪里?

除了什么时候删除?如果我不移动该文件?例如,如果我正在上传一个文件并且文件上传了一半,我决定关闭该浏览器,那么该文件会发生什么?服务器何时知道删除该临时文件?

一旦

您的 PHP 脚本完成执行并重新保存到定义的位置

使用直接 PHP 的示例,没有框架

http://www.php.net/manual/en/features.file-upload.post-method.php

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "File is valid, and was successfully uploaded.'n";
} else {
    echo "Possible file upload attack!'n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>

如果您不对它们执行任何操作,它们将在脚本完成后立即被删除。

如果不想删除文件,我发现如果您将文件"移动"到同一位置,PHP 在执行后不会删除文件。

move_uploaded_file($temporaryFile, $temporaryFile);