getFileInfo($file, $root_path, $root_url); } private function getFileInfo($file, $root_path = false, $root_url = false) { $file = str_replace('\\', '/', $file); $this->file = $file; $this->root_path = $root_path; $this->root_url = $root_url; if (\is_file($root_path . $file)) { $pathinfo = \pathinfo($file); $fileinfo = \stat($root_path . $file); $this->path = $pathinfo['dirname']; $this->basename = $pathinfo['basename']; $this->ext = $pathinfo['extension']; $this->filename = $pathinfo['filename']; $this->size = $fileinfo['size']; $this->atime = $fileinfo['atime']; $this->mtime = $fileinfo['mtime']; $this->ctime = $fileinfo['ctime']; // if ($this->ext == 'xml') { $this->url = $root_url . $file; $this->infos['fileIdentifier'] = $this->ext == 'xml' ? Helpers::getXmlFileInfo($file, 'fileIdentifier', $root_path)['fileIdentifier'] : False; $this->infos['dataTitle'] = $this->ext == 'xml' ? Helpers::getXmlFileInfo($file, 'dataTitle', $root_path)['dataTitle'] : False; // } return true; } return false; } public function getFile($file = false, $root_path = false, $root_url = False) { if ($file) { $this->file = $file; } if ($root_path) { $this->root_path = $root_path; } if ($root_url) { $this->root_url = $root_url; } $response = [ 'file' => $this->file, 'root_path' => $this->root_path, 'root_url' => $this->root_url, 'success' => false ]; if ($this->getFileInfo($this->file, $this->root_path, $this->root_url)) { $response['path'] = $this->path; $response['url'] = $this->url; $response['basename'] = $this->basename; $response['ext'] = $this->ext; $response['file'] = $this->file; $response['filename'] = $this->filename; $response['size'] = $this->size; $response['atime'] = $this->atime; $response['mtime'] = $this->mtime; $response['ctime'] = $this->ctime; // $response['content'] = $this->content; $response['fileIdentifier'] = $this->infos['fileIdentifier']; $response['dataTitle'] = $this->infos['dataTitle']; $response['success'] = true; } return $response; } public function saveFile($content, $file = false, $root_path = false, $root_url = False) { if ($file) { $this->file = $file; } $response = [ 'file' => $this->file, 'success' => false ]; if ($content) { if ($this->file) { // Check if path exists else create it $pathinfo = \pathinfo($root_path . $this->file); $path = $pathinfo['dirname']; if (!is_dir($path)) { if (!mkdir($path, 0777, true)) { $response['message'] = "Le dossier " . $path . " ne peut pas être créé."; } } } if (is_dir($path) and $this->file and $content) { chmod($path, 0777); file_put_contents($root_path . $this->file, $content); chmod($root_path . $file, 0777); $response['success'] = $this->getFileInfo($this->file, $root_path); $response['file'] = $this->getFile($this->file, $root_path, $root_url); // var_dump(1111111, realpath($root_path . $this->file), is_file($root_path . $this->file)); } } return $response; } public function copyFile($old, $new, $path = false) { $response = [ 'old' => $this->getFile($path . $old), 'new' => $new, 'path' => $path, 'success' => false ]; if ($this->getFileInfo($old)) { copy($path . $old, $path . $new); $response['new'] = $this->getFile($path . $new); $response['success'] = true; } return $response; } public function moveFile($old, $new, $path = false) { $response = [ 'old' => $this->getFile($path . $old), 'new' => $new, 'path' => $path, 'success' => false ]; if (rename($path . $old, $path . $new)) { $response['new'] = $this->getFile($path . $new); $response['success'] = true; } return $response; } public function deleteFile($file = false, $root_path = false, $root_url = false) { if ($file) { $this->file = $file; } $response = [ 'file' => $this->file, 'success' => false ]; if ($this->getFileInfo($this->file, $root_path, $root_url)) { unlink($root_path . $this->file); $response['success'] = true; } return $response; } }