fix ftp send printer command

This commit is contained in:
amazuecos
2025-04-02 13:42:24 +02:00
parent d42f46d280
commit b4a835bbfd

View File

@ -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;
}
}