Cómo subir un archivo a un servidor remoto en CodeIgniter

Hay veces que necesitas subir un archivo a otro servidor. En este artículo discutiremos sobre cómo subir archivos a un servidor remoto en CodeIgniter. CodeIgniter cuenta con una clase FTP para transferir archivo a otros servidores. Utilizando el sistema de subida de archivos de CodeIgniter y la librería FTP, puedes subir imágenes u otros ficheros a un servidor remoto de forma sencilla.

Primero subiremos el archivo a nuestro servidor utilizando la librería de subida de archivos de CodeIgniter, despues transferiremos el archivo al servidor remoto utilizando la librería FTP de CodeIgniter.

Controlador

Crea un controlador Home llamado Home.php dentro del directorio application/controllers/ que incluya la clase Home. Define una función index() y carga la vista con el formulario para subir archivos. Una vez se ha hecho submit del formulario, debes subir el fichero a tu servidor local. Después tendremos que conectar con el servidor remoto vía FTP y subir el fichero del servidor local al servidor remoto. Cuando se haya completado la subida al servidor remoto, puedes eliminar el fichero de tu servidor local. El controlador Home sería algo así como lo que puedes ver más abajo:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller
{
    function __construct() {
        parent::__construct();
    }
    
    public function index(){
        if($this->input->post('submit')){
            //Upload to the local server
            $config['upload_path'] = 'uploads/';
            $config['allowed_types'] = '*';
            $this->load->library('upload', $config);
            
            if($this->upload->do_upload('file'))
            {
                //Get uploaded file information
                $upload_data = $this->upload->data();
                $fileName = $upload_data['file_name'];
                
                //File path at local server
                $source = 'uploads/'.$fileName;
                
                //Load codeigniter FTP class
                $this->load->library('ftp');
                
                //FTP configuration
                $ftp_config['hostname'] = 'ftp.example.com'; 
                $ftp_config['username'] = 'ftp_username';
                $ftp_config['password'] = 'ftp_password';
                $ftp_config['debug']    = TRUE;
                
                //Connect to the remote server
                $this->ftp->connect($ftp_config);
                
                //File upload path of remote server
                $destination = '/assets/'.$fileName;
                
                //Upload file to the remote server
                $this->ftp->upload($source, ".".$destination);
                
                //Close FTP connection
                $this->ftp->close();
                
                //Delete file from local server
                @unlink($source);
            }
        }
        $this->load->view('home/index');
    }
}

Vista

Crea un fichero home/index.php dentro del directorio application/views/ e integra el HTML de un formulario de subida de fichero en él, tal que así:

<form method="post" enctype="multipart/form-data">
    <label>Choose File</label>
    <input type="file" name="file" />
    <input type="submit" name="submit" value="Upload">
</form>

Creando el directorio de subida

  • Crea el directorio de subida en tu servidor local tal y como se menciona en upload_path dentro del controlador Home.
  • Crea el directorio de subida en el servidor remoto tal y como se menciona en $destination dentro del controlador Home.

Configuración de rutas

Abre el fichero application/config/routes.php y cambia el controlador por defecto a Home.

$route['default_controller'] = 'home';

Fuente: codexworld.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP