是否可以在运行时找到PHP tmp文件夹?
我正在上传文件,我正在使用:
$_FILES['upfile']['tmp_name']
但是,我正在使用的一个API要求我必须提供相对于我的脚本的上传文件的完整文件路径!有点烦人,但必须要做。
关于我如何做到这一点的任何想法?
目前。我这样做,因为我知道要上升多少级别,但我确信tmp文件夹可以位于不同服务器的不同位置。
$file = '../..'.$_FILES['upfile']['tmp_name'];
全部谢谢
答案 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"
?>