add ftp send printer

This commit is contained in:
amazuecos
2025-04-02 13:54:51 +02:00
parent dc4db78b76
commit 492c7366cf

View File

@ -6,11 +6,8 @@ use App\Entities\Configuracion\ImpresoraEtiquetaEntity;
use App\Models\Configuracion\ImpresoraEtiquetaModel;
use CodeIgniter\Config\BaseService;
use DOMDocument;
use DOMElement;
use DOMText;
use DOMNode;
use phpseclib3\Net\SFTP;
use Throwable;
use Exception;
class ImpresoraEtiquetaService extends BaseService
{
@ -81,13 +78,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;
}
}