PHP方式找到Web服务器的临时路径?

Pet*_*uza 10 php upload path

处理HTTP上载时,文件将上载到

$_FILES['field_name']['tmp_name']
Run Code Online (Sandbox Code Playgroud)

我知道我可以从那里提取临时路径.但我期待的可能是一个$_SERVER有临时路径(没有)或其他优雅方式知道它的参数.

有没有?

Wal*_*jad 25

ini_get('upload_tmp_dir');
Run Code Online (Sandbox Code Playgroud)

  • 请注意:并非所有Web服务器都设置`upload_tmp_dir`.如果`ini_get('upload_tmp_dir')`返回一个空字符串,你最好关注@ NateGlenn关于回退到`sys_get_temp_dir()`的建议. (4认同)

Ion*_*tan 20

该函数sys_get_temp_dir()返回PHP用于存储临时文件的目录路径.

  • 返回C:\ Windows\TEMP \.我的代码片段返回D:/ WAMP/tmp. (2认同)
  • WAMP预先配置为使用分发的tmp目录. (2认同)

Nat*_*enn 8

在我的私人计算机上使用XAMPP,该ini_get方法运行良好,因为php.ini指定了值upload_tmp_dir.但是,在上传到我雇主的服务器之后,此代码无法正常工作,因为该服务器的php.ini文件中显然不存在该值.所以,我使用系统的临时目录作为默认值,现在脚本可以在我的计算机和服务器上运行:

$ini_val = ini_get('upload_tmp_dir');
$upload_tmp_dir = $ini_val ? $ini_val : sys_get_temp_dir();
Run Code Online (Sandbox Code Playgroud)

  • ...或者`$ upload_tmp_dir = ini_get('upload_tmp_dir')?:PHP 5.3或更高版本中的sys_get_temp_dir()`. (6认同)