本文整理汇总了PHP中Mage_Connect_Ftp::upload方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Connect_Ftp::upload方法的具体用法?PHP Mage_Connect_Ftp::upload怎么用?PHP Mage_Connect_Ftp::upload使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Connect_Ftp
的用法示例。
在下文中一共展示了Mage_Connect_Ftp::upload方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: store
/**
* Save config file on the disk or over ftp
*
* @return bool
*/
public function store()
{
$result = false;
if ($this->_forceSave || $this->_configLoaded || strlen($this->remote_config) > 0) {
$data = serialize($this->toArray());
if (strlen($this->remote_config) > 0) {
//save config over ftp
$confFile = $this->downloader_path . DIRECTORY_SEPARATOR . "connect.cfg";
try {
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($this->remote_config);
} catch (Exception $e) {
$this->_configError = 'Cannot access to deployment FTP path. ' . 'Check deployment FTP Installation path settings.';
return $result;
}
try {
$tempFile = tempnam(sys_get_temp_dir(), 'config');
$f = fopen($tempFile, "w+");
fwrite($f, self::HEADER);
fwrite($f, $data);
fclose($f);
} catch (Exception $e) {
$this->_configError = 'Cannot access to temporary file storage to save Settings.' . 'Contact your system administrator.';
return $result;
}
try {
$result = $ftpObj->upload($confFile, $tempFile);
$ftpObj->close();
} catch (Exception $e) {
$this->_configError = 'Cannot write file over FTP. ' . 'Check deployment FTP Installation path settings.';
return $result;
}
if (!$result) {
$this->_configError = '';
}
} elseif (is_file($this->_configFile) && is_writable($this->_configFile) || is_writable(getcwd())) {
try {
$f = fopen($this->_configFile, "w+");
fwrite($f, self::HEADER);
fwrite($f, $data);
fclose($f);
$result = true;
} catch (Exception $e) {
$result = false;
}
}
}
return $result;
}
示例2: getRemoteConfig
public function getRemoteConfig($ftpString)
{
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($ftpString);
$cfgFile = self::CONFIG_FILE_NAME;
$wd = $ftpObj->getcwd();
$remoteConfigExists = $ftpObj->fileExists($cfgFile);
$tempConfigFile = tempnam(sys_get_temp_dir(), 'conf_');
if (!$remoteConfigExists) {
$remoteCfg = new Mage_Connect_Config($tempConfigFile);
$remoteCfg->store();
$ftpObj->upload($cfgFile, $tempConfigFile);
} else {
$ftpObj->get($tempConfigFile, $cfgFile);
$remoteCfg = new Mage_Connect_Config($tempConfigFile);
}
$ftpObj->chdir($wd);
return array($remoteCfg, $ftpObj);
}
示例3: startInstall
/**
* Begin install package(s)
*/
public function startInstall()
{
if ($this->_getMaintenanceFlag()) {
$maintenance_filename = 'maintenance.flag';
$config = $this->config();
if (!$this->isWritable() || strlen($config->__get('remote_config')) > 0) {
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($config->__get('remote_config'));
$tempFile = tempnam(sys_get_temp_dir(), 'maintenance');
@file_put_contents($tempFile, 'maintenance');
$ftpObj->upload($maintenance_filename, $tempFile);
$ftpObj->close();
} else {
@file_put_contents($this->_getMaintenanceFilePath(), 'maintenance');
}
}
if (!empty($_GET['archive_type'])) {
$backupName = $_GET['backup_name'];
$connect = $this->model('connect', true)->connect();
$isSuccess = true;
if (!preg_match('/^[a-zA-Z0-9\\ ]{0,50}$/', $backupName)) {
$connect->runHtmlConsole('Please use only letters (a-z or A-Z), numbers (0-9) or space in ' . 'Backup Name field. Other characters are not allowed.');
$isSuccess = false;
}
if ($isSuccess) {
$isSuccess = $this->_createBackup($_GET['archive_type'], $_GET['backup_name']);
}
if (!$isSuccess) {
$this->endInstall();
$this->cleanCache();
throw new Mage_Exception('The installation process has been canceled because of the backup creation error');
}
}
}
示例4: getRemoteConfig
public function getRemoteConfig($ftpString)
{
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($ftpString);
$cfgFile = "connect.cfg";
$wd = $ftpObj->getcwd();
$remoteConfigExists = $ftpObj->fileExists($cfgFile);
$tempConfigFile = uniqid($cfgFile . "_temp");
if (!$remoteConfigExists) {
$remoteCfg = new Mage_Connect_Config($tempConfigFile);
$remoteCfg->store();
$ftpObj->upload($cfgFile, $tempConfigFile);
} else {
$ftpObj->get($tempConfigFile, $cfgFile);
$remoteCfg = new Mage_Connect_Config($tempConfigFile);
}
$ftpObj->chdir($wd);
return array($remoteCfg, $ftpObj);
}
示例5: validateConfigPost
/**
* Validate settings post data.
*
* @param array $p
*/
public function validateConfigPost($p)
{
$errors = array();
$configTestFile = 'connect.cfgt';
$configObj = $this->connect()->getConfig();
if ('ftp' == $p['deployment_type'] || '1' == $p['inst_protocol']) {
/*check ftp*/
$confFile = $configObj->downloader_path . DIRECTORY_SEPARATOR . $configTestFile;
try {
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($p['ftp']);
$tempFile = tempnam(sys_get_temp_dir(), 'config');
$serial = md5('config test file');
$f = @fopen($tempFile, "w+");
@fwrite($f, $serial);
@fclose($f);
$ret = $ftpObj->upload($confFile, $tempFile);
//read file
if (!$errors && is_file($configTestFile)) {
$size = filesize($configTestFile);
if (!$size) {
$errors[] = 'Unable to read saved settings. Please check Installation Path of FTP Connection.';
}
if (!$errors) {
$f = @fopen($configTestFile, "r");
@fseek($f, 0, SEEK_SET);
$contents = @fread($f, strlen($serial));
if ($serial != $contents) {
$errors[] = 'Wrong Installation Path of FTP Connection.';
}
fclose($f);
}
} else {
$errors[] = 'Unable to read saved settings. Please check Installation Path of FTP Connection.';
}
$ftpObj->delete($confFile);
$ftpObj->close();
} catch (Exception $e) {
$errors[] = 'Deployment FTP Error. ' . $e->getMessage();
}
} else {
$p['ftp'] = '';
}
if ('1' == $p['use_custom_permissions_mode']) {
/*check permissions*/
if (octdec(intval($p['mkdir_mode'])) < 73 || octdec(intval($p['mkdir_mode'])) > 511) {
$errors[] = 'Folders permissions not valid. ';
}
if (octdec(intval($p['chmod_file_mode'])) < 73 || octdec(intval($p['chmod_file_mode'])) > 511) {
$errors[] = 'Files permissions not valid. ';
}
}
//$this->controller()->session()->addMessage('success', 'Settings has been successfully saved');
return $errors;
}
示例6: startInstall
/**
* Begin install package(s)
*/
public function startInstall()
{
if ($this->_getMaintenanceFlag()) {
$maintenance_filename = 'maintenance.flag';
$config = $this->config();
if (!$this->isWritable() || strlen($config->__get('remote_config')) > 0) {
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($config->__get('remote_config'));
$tempFile = tempnam(sys_get_temp_dir(), 'maintenance');
@file_put_contents($tempFile, 'maintenance');
$ftpObj->upload($maintenance_filename, $tempFile);
$ftpObj->close();
} else {
@file_put_contents($this->_getMaintenanceFilePath(), 'maintenance');
}
}
}
示例7: processInstallPackageFtp
/**
* Install package over FTP
*
* @param Mage_Connect_Package $package
* @param string $file
* @param Mage_Connect_Config $configObj
* @param Mage_Connect_Ftp $ftp
* @return void
*/
public function processInstallPackageFtp($package, $file, $configObj, $ftp)
{
$ftpDir = $ftp->getcwd();
$contents = $package->getContents();
$arc = $this->getArchiver();
$target = dirname($file) . DS . $package->getReleaseFilename();
@mkdir($target, 0777, true);
$tar = $arc->unpack($file, $target);
$modeFile = $this->_getFileMode($configObj);
$modeDir = $this->_getDirMode($configObj);
foreach ($contents as $file) {
$source = $tar . DS . $file;
if (file_exists($source) && is_file($source)) {
$args = array(ltrim($file, "/"), $source);
if ($modeDir || $modeFile) {
$args[] = $modeDir;
$args[] = $modeFile;
}
call_user_func_array(array($ftp, 'upload'), $args);
}
}
$localXml = $tar . Mage_Connect_Package_Reader::DEFAULT_NAME_PACKAGE;
if (is_file($localXml)) {
$remoteXml = Mage_Connect_Package::PACKAGE_XML_DIR . DS . $package->getReleaseFilename() . '.xml';
$ftp->upload($remoteXml, $localXml, $modeDir, $modeFile);
}
$ftp->chdir($ftpDir);
Mage_System_Dirs::rm(array("-r", $target));
}
示例8: store
public function store()
{
if ($this->_configLoaded || strlen($this->remote_config) > 0) {
// @TODO: use ftp to save config
$data = serialize($this->toArray());
if (strlen($this->remote_config) > 0) {
$confFile = $this->downloader_path . DIRECTORY_SEPARATOR . "connect.cfg";
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($this->remote_config);
$tempFile = tempnam(sys_get_temp_dir(), 'config');
$f = @fopen($tempFile, "w+");
@fwrite($f, self::HEADER);
@fwrite($f, $data);
@fclose($f);
$ret = $ftpObj->upload($confFile, $tempFile);
$ftpObj->close();
} elseif (is_file($this->_configFile) && is_writable($this->_configFile) || is_writable(getcwd())) {
$f = @fopen($this->_configFile, "w+");
@fwrite($f, self::HEADER);
@fwrite($f, $data);
@fclose($f);
}
}
}
示例9: save
/**
* Save file
*
* @return Maged_Model_Config
*/
public function save()
{
if (!is_writable($this->getFilename()) && is_file($this->getFilename()) || dirname($this->getFilename()) != '' && !is_writable(dirname($this->getFilename()))) {
if (isset($this->_data['ftp']) && !empty($this->_data['ftp']) && strlen($this->get('downloader_path')) > 0) {
$confFile = $this->get('downloader_path') . DIRECTORY_SEPARATOR . basename($this->getFilename());
$ftpObj = new Mage_Connect_Ftp();
$ftpObj->connect($this->_data['ftp']);
$tempFile = tempnam(sys_get_temp_dir(), 'configini');
$fp = fopen($tempFile, 'w');
foreach ($this->_data as $k => $v) {
fwrite($fp, $k . '=' . $v . "\n");
}
fclose($fp);
$ret = $ftpObj->upload($confFile, $tempFile);
$ftpObj->close();
} else {
/* @TODO: show Warning message*/
$this->controller()->session()->addMessage('warning', 'Invalid file permissions, could not save configuration.');
return $this;
}
/**/
} else {
$fp = fopen($this->getFilename(), 'w');
foreach ($this->_data as $k => $v) {
fwrite($fp, $k . '=' . $v . "\n");
}
fclose($fp);
}
return $this;
}
示例10: processInstallPackageFtp
/**
* Install package over FTP
*
* @param Mage_Connect_Package $package
* @param string $file
* @param Mage_Connect_Config $configObj
* @param Mage_Connect_Ftp $ftp
* @throws RuntimeException
*/
public function processInstallPackageFtp($package, $file, $configObj, $ftp)
{
$ftpDir = $ftp->getcwd();
$contents = $package->getContents();
$arc = $this->getArchiver();
$target = dirname($file) . DS . $package->getReleaseFilename();
if (!@mkdir($target, 0777, true)) {
throw new RuntimeException("Can't create directory " . $target);
}
$tar = $arc->unpack($file, $target);
$modeFile = $this->_getFileMode($configObj);
$modeDir = $this->_getDirMode($configObj);
$failedFiles = array();
foreach ($contents as $file) {
$source = $tar . DS . $file;
if (file_exists($source) && is_file($source)) {
$args = array(ltrim($file, "/"), $source);
if ($modeDir || $modeFile) {
$args[] = $modeDir;
$args[] = $modeFile;
}
if (call_user_func_array(array($ftp, 'upload'), $args) === false) {
$failedFiles[] = $source;
}
}
}
if (!empty($failedFiles)) {
$msg = sprintf("Failed to upload files: %s \r\n Check permissions", implode("\r\n", $failedFiles));
throw new RuntimeException($msg);
}
$localXml = $tar . Mage_Connect_Package_Reader::DEFAULT_NAME_PACKAGE;
if (is_file($localXml)) {
$remoteXml = Mage_Connect_Package::PACKAGE_XML_DIR . DS . $package->getReleaseFilename() . '.xml';
$ftp->upload($remoteXml, $localXml, $modeDir, $modeFile);
}
$ftp->chdir($ftpDir);
Mage_System_Dirs::rm(array("-r", $target));
}