✏️ 正在编辑: Ftp.php
路径:
/srv/systems_dir/yuppiecred/library/Core/Banco/Service/Ftp.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Service_Ftp extends Yuppie_Ftp { public function __construct($empresaId = null, $bancoId) { if( $empresaId != null ){ $dbtable = new Model_DbTable_EmpresaFtp(); $dados = $dbtable->fetchRow('empresa_id = ' . $empresaId . ' AND banco_id = ' . $bancoId); if( $dados != null ){ return parent::__construct($dados['host'], $dados['login'], $dados['senha']); } } throw new Core_Exception('Dados de FTP não localizados.'); } public static function factory($empresaId, $bancoId) { $modelBanco = new Model_Banco(); $objBanco = $modelBanco->exibir($bancoId); if( !$objBanco ){ throw new Yuppie_Exception('Banco não foi localizado '); } $nomeBanco = (string) $objBanco->nome; switch ( trim($nomeBanco) ) { case 'BRADESCO PROMOTORA': return new Core_Banco_Service_FtpBradesco($empresaId, $objBanco->id); case 'BONSUCESSO': return new Core_Banco_Service_FtpBonSucesso($empresaId, $objBanco->id); default: throw new Yuppie_Exception('Banco selecionado não possui importação via FTP no sistema: ' . $nomeBanco); } } public static function factoryBanco($bancoId, $arquivo) { $nomeBanco = current(Model_Banco::bancoPorNomeId($bancoId)); switch ( $nomeBanco ) { case 'BRADESCO PROMOTORA': return new Core_Banco_Planilha_Bradesco_Ftp($bancoId); case 'BONSUCESSO': if( strpos($arquivo, "DadosProposta") ){ return new Core_Banco_Planilha_Bonsucesso_Ftp($bancoId); } elseif( strpos($arquivo, "SituacaoProposta") ){ return new Core_Banco_Planilha_Bonsucesso_FtpStatus($bancoId); }elseif( strpos($arquivo, "CreditoCliente") ){ return new Core_Banco_Planilha_Bonsucesso_FtpCreditoCliente($bancoId); }elseif( strpos($arquivo, "_Cliente") ){ return new Core_Banco_Planilha_Bonsucesso_FtpCliente($bancoId); } else { throw new Yuppie_Exception('Arquivo do Bonsucesso em um padrão diferente'); } default: throw new Yuppie_Exception('Ocorreu algum erro ao importar os arquivos'); } } public function baixarArquivos($diretorio = '.', $bancoId, $closeConnection = true) { $qtdArquivosBaixados = 0; $dbtableArquivo = null; if( $this->getIsConnected() ){ $this->setModPasv(false); $this->changeDirectory($diretorio); $files = $this->listFilesInDirectory(); //localiza a última importação $dbtableArquivo = new Model_DbTable_ArquivoImportado(); if( !$this->_ultimoImportado ){ $this->_ultimoImportado = $dbtableArquivo->getLastFileImported($bancoId); } $dt = DateTime::createFromFormat('Y-m-d', substr($this->_ultimoImportado['data_importacao'], 0, 10)); $this->_timeInicial = $dt->sub(new DateInterval('P1D'))->getTimestamp(); $diretorioDestino = $this->verificaDiretorioDestino($bancoId); if( count($files) > 0 ){ foreach ( $files as $file ) { //baixa o arquivo if( $this->getFile($file, $diretorioDestino . '/' . $file) ){ $qtdArquivosBaixados++; } } } if( $closeConnection ){ $this->closeConnection(); } } return $qtdArquivosBaixados; } public function verificaDiretorioDestino($bancoId) { $diretorioDestino = DOWNLOAD_PATH . '/' . $bancoId; if( !(is_dir($diretorioDestino)) ): if( !(mkdir($diretorioDestino, 0777)) ): throw new Zend_Upload_Exception("Pasta de upload nao existe e não pode ser criada."); endif; endif; return $diretorioDestino; } }
💾 保存文件
← 返回文件管理器