如何查找与脚本运行相关的PHPs tmp文件夹?

如何查找与脚本运行相关的PHPs tmp文件夹?,php,file,upload,Php,File,Upload,可以在运行时找到PHP tmp文件夹吗 我正在上传文件,我正在利用: $_FILES['upfile']['tmp_name'] 然而,我正在使用的一个API要求我必须给出上传文件相对于脚本的完整文件路径!有点烦人,但必须这样做 有什么办法可以做到这一点吗 编辑 现在。我正在这样做,因为我知道要提升多少级别,但我确信tmp文件夹可以位于不同服务器的不同位置 $file = '../..'.$_FILES['upfile']['tmp_name']; 谢谢大家真的,如果可能的话,我建议您在开始

可以在运行时找到PHP tmp文件夹吗

我正在上传文件,我正在利用:

$_FILES['upfile']['tmp_name']
然而,我正在使用的一个API要求我必须给出上传文件相对于脚本的完整文件路径!有点烦人,但必须这样做

有什么办法可以做到这一点吗

编辑 现在。我正在这样做,因为我知道要提升多少级别,但我确信tmp文件夹可以位于不同服务器的不同位置

$file = '../..'.$_FILES['upfile']['tmp_name'];

谢谢大家

真的,如果可能的话,我建议您在开始与其他API进行交互之前,将上传的文件移动到其永久位置。无论如何,你都必须这样做,然后你就很容易知道它的相对位置了

如果你不能做到这一点,我想你可以通过分析
dirname($\u FILES['upfile']['tmp\u name'])
dirname(\uu FILE\uuu)

getcwd()应该输出当前的工作目录来计算出相对路径


<?php

            // Create a temporary file in the temporary 
            // files directory using sys_get_temp_dir()

    $temp_file = tempnam(sys_get_temp_dir(), 'filename');

    echo $temp_file;



    // on my machine this echoes something like "/tmp/filename7gkPjR"
?>

不确定这是否是一种万无一失的方法,但它可以在我的服务器上运行。此外,可能还有一种方法可以将文件夹名称替换为。。但这是我无法理解的

$folders = explode('/', $_SERVER['SCRIPT_FILENAME']);
for ($i = 2; $i < count($folders); $i++) $dir .= '../';
$dir = substr($dir,0,-1);
$dir = $dir.$_FILES['upfile']['tmp_name'];
$folders=explode('/',$服务器['SCRIPT\u FILENAME']);
对于($i=2;$i
API建议在传递文件之前将文件完全上传到服务器。然而,我需要更快,我希望我可以剃掉几秒钟!你应该听一下API。:)将文件移动到其最终位置不应花费“几秒钟”的时间。唯一需要花费大量时间的是,如果PHP的tmp目录和最终存储位置在不同的文件系统上,那么您当然应该将它们放在同一个文件系统上。这是相对于正在运行的PHP脚本的当前位置吗?似乎是绝对路径“cd/tmp/”至少带我到正确的目录。啊,对不起,我没有注意到“相对于我的脚本”部分。我看看能不能想出一个更有用的建议=)