es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una manera de hacer scp dentro de una red local, desde PHP, con habilidades de programación para principiantes?

Tengo una red local detrás de un enrutador, por lo que las direcciones son como 192.168.1.xxx. Necesito que PHP obtenga archivos de otros sistemas en esa red. Busqué en PHP SSH, pero (1) está mucho más allá de mi nivel de habilidad y (2) ssh_connect no está disponible en mi instalación. Puedo hacerlo con scp de línea de comandos, pero no con PHP. ¿Hay algo más fácil de entender para un principiante, utilizando PHP, para obtener/poner archivos entre sistemas locales?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera más sencilla de transferir archivos entre sistemas en una red local mediante PHP. Puedes utilizar la función copy() de PHP para transferir archivos entre sistemas locales. Aquí tienes un ejemplo:

    <?php
    $file_to_copy = '/ruta/hacia/archivo/local.txt';
    $destination = '192.168.1.xxx:/ruta/hacia/carpeta/remota';
    
    // copiar el archivo al servidor remoto
    if (copy($file_to_copy, $destination)) {
        echo "¡Archivo copiado exitosamente!";
    } else {
        echo "Error al copiar el archivo.";
    }
    ?>
    

    En este ejemplo, $file_to_copy es la ruta hacia el archivo local que deseas transferir, y $destination es la ruta de destino en el servidor remoto. Reemplaza 192.168.1.xxx con la dirección IP del sistema remoto.

    Ten en cuenta que este método asume que el sistema remoto tiene una cuenta de usuario que puede autenticarse y escribir en el directorio especificado. Puedes necesitar configurar cuentas de usuario y permisos en el sistema remoto para habilitar la transferencia de archivos.

    Este método es más simple que usar PHP SSH y no requiere la función ssh_connect, lo que lo convierte en una buena opción para principiantes para entender.

Comments are closed.