我有这个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脚本的同一目录中创建该文件。
答案 0 :(得分: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网站的根