Как найти PHP-папку tmp относительно запуска скрипта? - PullRequest
2 голосов
/ 27 июня 2009

Можно ли найти папку PHP TMP во время выполнения?

Я загружаю файлы и использую:

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

Однако один из API, который я использую, требует, чтобы я указывал полный путь к файлу загруженного файла относительно моего скрипта! Немного раздражает, но это должно быть сделано.

Есть идеи, как мне это сделать?

EDIT

В настоящее время. Я делаю это, поскольку знаю, сколько уровней нужно поднять, но я уверен, что папка tmp может находиться в разных местах на разных серверах.

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

Спасибо всем

Ответы [ 4 ]

1 голос
/ 28 июня 2009

Не уверен, что это надежный способ, но он работает на моем сервере. Кроме того, вероятно, есть способ заменить имена папок на ..., но это за мной.

$folders = explode('/', $_SERVER['SCRIPT_FILENAME']);
for ($i = 2; $i < count($folders); $i++) $dir .= '../';
$dir = substr($dir,0,-1);
$dir = $dir.$_FILES['upfile']['tmp_name'];
1 голос
/ 27 июня 2009

Действительно, если возможно, я бы порекомендовал вам переместить загруженный файл в его постоянное местоположение, прежде чем вы начнете взаимодействовать с другими API-интерфейсами, касающимися этого. Вам все равно придется, и тогда вы легко узнаете его относительное местоположение.

Если вы не можете сделать это, я полагаю, вы можете определить относительный путь, проанализировав dirname($_FILES['upfile']['tmp_name']) и dirname(__FILE__).

0 голосов
/ 27 июня 2009
<?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"
?>
0 голосов
/ 27 июня 2009

getcwd () должен выводить текущий рабочий каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...