protected function filecopy($srcFile, $destFile) { if (AJXP_MetaStreamWrapper::nodesUseSameWrappers($srcFile, $destFile)) { $srcFilePath = str_replace($this->urlBase, "", $srcFile); $destFilePath = str_replace($this->urlBase, "", $destFile); $destDirPath = dirname($destFilePath); list($connection, $remote_base_path) = sftpAccessWrapper::getSshConnection($srcFile); $remoteSrc = $remote_base_path . $srcFilePath; $remoteDest = $remote_base_path . $destDirPath; $this->logDebug("SSH2 CP", array("cmd" => 'cp ' . $remoteSrc . ' ' . $remoteDest)); ssh2_exec($connection, 'cp ' . $remoteSrc . ' ' . $remoteDest); AJXP_Controller::applyHook("node.change", array(new AJXP_Node($srcFile), new AJXP_Node($destFile), true)); } else { parent::filecopy($srcFile, $destFile); } }
/** * @param String $srcFile url of source file * @param String $destFile url of destination file */ protected function filecopy($srcFile, $destFile) { if (!AJXP_MetaStreamWrapper::nodesUseSameWrappers($srcFile, $destFile) || AJXP_MetaStreamWrapper::wrapperIsRemote($srcFile) || AJXP_MetaStreamWrapper::wrapperIsRemote($destFile)) { $src = fopen($srcFile, "r"); $dest = fopen($destFile, "w"); if (is_resource($src) && is_resource($dest)) { while (!feof($src)) { //stream_copy_to_stream($src, $dest, 4096); $count = stream_copy_to_stream($src, $dest, 4096); if ($count == 0) { break; } } } if (is_resource($dest)) { fclose($dest); } if (is_resource($src)) { fclose($src); } } else { copy($srcFile, $destFile); } }