【发布时间】:2010-09-28 22:02:46
【问题描述】:
我在 Windows 上使用 XAMPP。通过打印$_FILES["file"]["tmp_name"],似乎临时文件保存在C:\xampp\tmp\phpABCD.tmp。但是我在服务器的文件系统上看不到它。但是,可以通过move_uploaded_file()、rename() 或copy() 移动或复制文件。那么PHP在上传过程中究竟是把临时文件保存在哪里呢?
【问题讨论】:
标签: php
我在 Windows 上使用 XAMPP。通过打印$_FILES["file"]["tmp_name"],似乎临时文件保存在C:\xampp\tmp\phpABCD.tmp。但是我在服务器的文件系统上看不到它。但是,可以通过move_uploaded_file()、rename() 或copy() 移动或复制文件。那么PHP在上传过程中究竟是把临时文件保存在哪里呢?
【问题讨论】:
标签: php
它将它保存在$_FILES["file"]["tmp_name"]中指定的路径,但在脚本执行完成后将其删除。如果您想保留该文件,您可以将其移至别处。
【讨论】:
它在您的 php.ini 文件中的 upload_tmp_dir 中指定。使用后系统会自动删除。
【讨论】:
您可以通过打印检查 php 当前将您的 temp files $_FILES["file"]["tmp_name"] 保存在哪里
sys_get_temp_dir()
【讨论】:
php 将所有临时文件(包括上传的文件)存储在 php.ini 中指定的临时文件目录中。请注意,对于上传,这些文件可能会在文件上传到的脚本终止后立即被删除(因此,除非您延迟该脚本,否则您可能不会看到上传的文件)。另一个原因可能是文件只是隐藏在文件系统中。
因此,如果您想查看该文件,您可能需要确保在资源管理器中看到所有隐藏文件,并在您需要找到该文件时延迟脚本。
【讨论】:
使用move_uploaded_file(file, path),指定文件和要存储文件的路径。
创建并存储该文件的副本。
【讨论】:
from http://www.php.net/manual/en/features.file-upload.php#93602, "...上传的文件将继承php.ini 的指令upload_tmp_dir 中指定的目录的权限。如果未设置此指令,则默认为C:\Windows\使用温度..."
【讨论】:
请注意,该文件以二进制形式保存在$_FILES["file"]["tmp_name"],因此如果它是图像或类似的东西,您可以使用file_get_contents 打开它...
【讨论】:
如果您询问文件位置,则取决于服务器的设置。但是如果你问它是先保存在本地系统还是服务器中。然后回答是保存在服务器的临时文件夹中。
【讨论】: