如何找到相对于脚本运行的PHP tmp文件夹?

时间:2009-06-27 19:23:59

标签: php file upload

是否可以在运行时找到PHP tmp文件夹?

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

$_FILES['upfile']['tmp_name']

但是,我正在使用的一个API要求我必须提供相对于我的脚本的上传文件的完整文件路径!有点烦人,但必须要做。

关于我如何做到这一点的任何想法?

修改

目前。我这样做,因为我知道要上升多少级别,但我确信tmp文件夹可以位于不同服务器的不同位置。

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

全部谢谢

4 个答案:

答案 0 :(得分:1)

真的,如果可能的话,我建议您在开始与其他API相关之前将上传的文件移动到其永久位置。无论如何你都要去,然后你很容易知道它的相对位置。

如果你不能这样做,我想你可以通过分析dirname($_FILES['upfile']['tmp_name'])dirname(__FILE__)来计算相对路径。

答案 1 :(得分:1)

不确定这是否是一种万无一失的方式,但它可以在我的服务器上运行。此外,可能有一种方法可以用...替换文件夹名称,但这超出了我的范围。

$folders = explode('/', $_SERVER['SCRIPT_FILENAME']);
for ($i = 2; $i < count($folders); $i++) $dir .= '../';
$dir = substr($dir,0,-1);
$dir = $dir.$_FILES['upfile']['tmp_name'];

答案 2 :(得分:0)

getcwd()应该输出当前的工作目录。

答案 3 :(得分:0)

<?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"
?>