pedido_xml_config = config("PedidoXML"); $this->host = $this->pedido_xml_config->host; $this->username = $this->pedido_xml_config->username; $this->password = $this->pedido_xml_config->password; $this->port = $this->pedido_xml_config->port; $this->base_dir = $this->pedido_xml_config->base_dir; $this->xml_enabled = $this->pedido_xml_config->xml_enabled; $this->ftp = new SFTP($this->host); } /** * Upload the content of $filename to the base directory declared in App\Config\FTP.php * * @param string $content * @param string $filename * @return boolean */ public function uploadXML(string $content, string $filename): bool { try { if ($this->xml_enabled == false) return false; $remotePath = implode("/", [$this->base_dir,'xml_nuevos']); $this->ftp->login(username: $this->username, password: $this->password); if(!$this->ftp->is_dir($remotePath)){ $this->ftp->mkdir($remotePath,recursive:true); } $this->ftp->put($remotePath.'/'.$filename, $content); return true; } catch (\Throwable $th) { throw $th; log_message('error', $th->getMessage()); return false; } } public function uploadFilePresupuesto(int $presupuesto_id) { try { $model = model(PresupuestoFicheroModel::class); $modelPedidoLinea = model(PedidoLineaModel::class); $pedidoLinea = $modelPedidoLinea->findByPresupuesto($presupuesto_id); $rootIdExtern = 1e6 + $pedidoLinea->pedido_id; $presupuestoFiles = $model->getFiles($presupuesto_id); $this->ftp->login(username: $this->username, password: $this->password); foreach ($presupuestoFiles as $key => $value) { $filename = array_reverse(explode("/", $value->file_path))[0]; $remoteDir = implode("/", [$this->base_dir,$rootIdExtern]); $remoteFile = implode("/", [$this->base_dir,$rootIdExtern,$filename]); if(!$this->ftp->is_dir($remoteDir)){ $this->ftp->mkdir($remoteDir,recursive:true); } $this->ftp->put($remoteFile,$value->file_path,mode:$this->ftp::SOURCE_LOCAL_FILE); } } catch (Exception $e) { log_message('error', $e->getMessage()); throw $e; } } }