0

我有这个 diretorio.php 文件,它在 Joomla 中获取用户 ID 并使用该 ID 创建一个目录(如果它尚不存在):

/* Get the current user id */
$user = JFactory::getUser();
$usr_id = $user->get('id');

/*Define the path to this user's directory */
$diretorio=$_SERVER['DOCUMENT_ROOT']."/Apps/files/".$usr_id;

/*Create the user's directory if it doesn't exist */
if (!file_exists($diretorio) and !is_dir($diretorio)) {
    mkdir($diretorio, 0755);
};

现在,我想使用 Ajax 将另一个 PHP 文件触发到上面创建的同一目录中,将一个包含数据的文件保存在一个对象中:

$myFile = $diretorio."/dados.json";
$fh = fopen($myFile, 'w') or die("não é possível abrir o ficheiro");
$stringData = $_POST['data'];
$stringData='{  "data":'.json_encode($stringData).'}';
fwrite($fh, $stringData);
fclose($fh);

但是,不会创建该文件。如果我将第一行替换为:

$myFile = "dados.json";

它将在存储此 PHP 脚本的同一目录中创建文件。

4

1 回答 1

0

我建议使用 Joomla 编码标准,如下所示:

$user = JFactory::getUser();
$usr_id = $user->get('id');

$diretorio = JPATH_SITE . "/Apps/files/" . $usr_id;

if (!JFolder::exists($diretorio)) {
    JFolder::create($diretorio, 0775);
}

$myFile = $diretorio."/dados.json";

$stringData = $_POST['data'];
$stringData = '{ "data":'.json_encode($stringData).'}';
JFile::write($myFile, $stringData);

JPATH_SITE是您的 Joomla 网站的根

于 2013-10-08T15:27:33.033 回答