✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo transferir archivos a un servidor remoto en PHP

848

El almacenamiento de archivos o imágenes en un servidor externo es un comportamiento común en la actualidad. Las personas usan el almacenamiento en la nube como AWS, Azure, Google Cloud, Backblaze o su propio servidor remoto para almacenar los archivos. En ese escenario, el usuario almacena archivos en otro servidor y lo llama a través del enlace en su servidor de aplicaciones. El beneficio de hacer esto es que ahorra ancho de banda en un servidor, lo que resulta en un mejor rendimiento del servidor.

En el pasado, mientras trabajábamos en el proyecto de un cliente, seguíamos esta técnica para almacenar imágenes en un servidor remoto. Lo que el cliente quería era enviar imágenes a su propio servidor externo y llamarlo desde una aplicación donde fuera necesario. En ese caso, necesitábamos almacenar la ruta de la imagen remota en la base de datos después de cargarla en un servidor remoto.

En este artículo, le mostraremos cómo transferir archivos a un servidor remoto en PHP a través de FTP. Por el bien de este tutorial, usamos imágenes para cargar. El usuario puede elegir cualquier tipo de archivo según sus necesidades.

Empezando

Para continuar, debe tener las credenciales FTP de su servidor. Otro requisito es el Compositor. Asegúrese de haber instalado Composer en su sistema. Va a utilizar un paquete llamado Flysystem que requiere Composer para su instalación.

Abra la terminal en el directorio raíz de su proyecto y ejecute el siguiente comando.

composer require league/flysystem

Tras la instalación, cree un formulario HTML con entrada de archivo y botón de envío. Este formulario se utilizará para navegar por la imagen y enviarla al servidor.

<form method="post" action="upload.php" enctype="multipart/form-data">
    <input type="file" name="image" /><br>
    <input type="submit" name="submit" value="Submit">
</form>

Transferir archivos al servidor remoto

Ha instalado la biblioteca Flysystem y también ha creado un formulario HTML. Lo siguiente que debe hacer es tomar la imagen de la entrada del archivo y enviarla a un servidor remoto. Tu upload.phpcontendrá el siguiente código.

<?php
require_once "vendor/autoload.php";
 
use LeagueFlysystemFilesystem;
use LeagueFlysystemAdapterFtp as Adapter;
 
if(isset($_POST['submit'])) {
 
    if(isset($_FILES['image']['name']) && !empty($_FILES['image']['name'])) {
 
        try {
            $filesystem = new Filesystem(new Adapter([
                'host' => 'HOST_NAME_HERE',
                'username' => 'USERNAME_HERE',
                'password' => 'PASSWORD_HERE',
            ]));
 
            $stream = fopen($_FILES['image']['tmp_name'], 'r+');
            $filesystem->putStream('public_html/images/'.$_FILES['image']['name'], $stream);
 
            if (is_resource($stream)) {
                fclose($stream);
            }
 
            echo "Image uploaded on external server successfully.";
        } catch(Exception $e) {
            echo $e->getMessage();
        }
    }
}

Reemplace los marcadores de posición con los valores reales. Aquí estamos almacenando imágenes dentro del public_html/imagesdirectorio. Puede ajustar esta ruta según sus necesidades. En el código anterior, Flysystem se conecta a su servidor a través de FTP, lee el contenido de la imagen y coloca la imagen en la ruta especificada.

Esperamos que sepa cómo transferir archivos al servidor remoto en PHP. Con Flysystem, también puede transferir archivos en AWS S3, Azure, Dropbox, etc. Puede obtener más información sobre este paquete en su documentación oficial.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More