PHP在上传过程中保存临时文件的位置?

时间:2010-09-28 22:02:47

标签: php

我在Windows上使用XAMPP。通过打印$_FILES["file"]["tmp_name"],临时文件似乎保存在C:\ xampp \ tmp \ phpABCD.tmp中。但我无法在服务器的文件系统上看到它。但是,可以通过move_uploaded_file()rename()copy()移动或复制文件。那么PHP在上传过程中实际上在哪里保存了临时文件?

8 个答案:

答案 0 :(得分:32)

它将它保存在$_FILES["file"]["tmp_name"]中指定的路径中,但在脚本执行完毕后将其删除。如果你想保留它,你可以将文件移到别处。

答案 1 :(得分:16)

在php.ini文件的upload_tmp_dir中指定。系统在使用后会自动删除它。

答案 2 :(得分:7)

您可以通过打印

来查看php当前在哪里保存您的临时files $_FILES["file"]["tmp_name"]
    sys_get_temp_dir()

答案 3 :(得分:3)

php将所有临时文件(包括上传的文件)存储在php.ini中指定的临时文件目录中。请注意,对于上传,一旦文件上传到的脚本被终止,这些文件就可能被删除(因此,除非您延迟该脚本,否则您可能无法看到上传的文件)。另一个原因可能是文件只是隐藏在文件系统上。

因此,如果您想查看该文件,您可能需要确保在资源管理器中查看所有隐藏文件,并在需要查找文件时延迟脚本。

答案 4 :(得分:3)

使用move_uploaded_file(file, path),指定文件以及存储文件的路径。

创建并存储该文件的副本。

答案 5 :(得分:2)

来自http://www.php.net/manual/en/features.file-upload.php#93602,“...上传的文件将继承upload_tmp_dir指令php.ini中指定的目录的权限。如果未设置此指令,则默认使用C:\ Windows \ Temp ......“

答案 6 :(得分:0)

请注意,该文件已在$_FILES["file"]["tmp_name"]中保存为二进制文件,因此如果是图像或类似内容,您可以使用file_puts_contents打开它。

答案 7 :(得分:-1)

如果您询问文件位置,则取决于服务器的设置。但是如果你问它是先保存在本地系统中还是先保存在服务器中。然后答案是保存在服务器的临时文件夹中。