49

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

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

我去那个文件夹,它是空的。我确保从我的“文件夹选项”中打开了“显示隐藏文件”,但我没有看到它。它究竟在哪里?

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

4

3 回答 3

34

一旦您的 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>";

?>
于 2012-06-21T03:48:53.717 回答
10

如果您不对它们做任何事情,它们将在脚本完成后立即被删除。

于 2015-02-04T19:51:13.700 回答
4

如果不需要删除文件,我发现如果您将其“移动”到同一位置,PHP 不会在执行后删除文件。

move_uploaded_file($temporaryFile, $temporaryFile);
于 2017-03-01T10:48:08.077 回答