diff --git a/ci4/app/Services/ImpresoraEtiquetaService.php b/ci4/app/Services/ImpresoraEtiquetaService.php index 19e4e851..5a797f3a 100644 --- a/ci4/app/Services/ImpresoraEtiquetaService.php +++ b/ci4/app/Services/ImpresoraEtiquetaService.php @@ -9,6 +9,8 @@ use DOMDocument; use DOMElement; use DOMText; use DOMNode; +use Error; +use Exception; use phpseclib3\Net\SFTP; use Throwable; @@ -81,13 +83,25 @@ class ImpresoraEtiquetaService extends BaseService } protected function sendToImpresoraEtiqueta(string $name, string $content, ImpresoraEtiquetaEntity $impresoraEtiqueta): bool { - $ftp = new SFTP($impresoraEtiqueta->ip, $impresoraEtiqueta->port); - $isLoginSuccess = $ftp->login(username: $impresoraEtiqueta->user, password: $impresoraEtiqueta->pass ?? ''); - if ($isLoginSuccess) { - $status = $ftp->put($name, $content); - } else { - $status = false; + $conn = @ftp_connect($impresoraEtiqueta->ip,$impresoraEtiqueta->port); + if(!$conn){ + throw new Exception('Error al establecer conexión FTP'); } + $isLoginSuccess = @ftp_login($conn, $impresoraEtiqueta->user, $impresoraEtiqueta->pass); + if ($isLoginSuccess) { + } else { + throw new Exception('Error haciendo login en el servidor FTP'); + } + if (!ftp_pasv($conn, true)) { + throw new Exception('Error entrando en modo pasivo'); + } + if (ftp_put($conn, $name, $content, FTP_ASCII) === FALSE) { + $status = false; + ftp_close($conn); + }else{ + $status = true; + } + return $status; } }