• Unay Santisteban

    Web Developer

  • 1

About Me

Know me a little more

Enthusiastic web developer, I like to "play" with new technologies, I develop web applications as a hobby. I feel special attraction for backend development.

I have developed web applications with Codeigniter, Laravel, Symfony and other frameworks. I like to play with AngularJS, NodeJS currently I'm involved in the exciting world of APS (Application Package Standard).

Personal information

Date of Birth:
Email:
Web:
City:
Country:
November 10, 1988
Santander, Cantabria
Spain

Follow me

Hobbies and Interests


  • Games


  • Music


  • Movies


  • Coffe


  • Code


  • Bike


  • Books


  • GNU/Linux

My Skills

Some of my most important skills are

HTML5 y CSS3
100%
PHP
100%
JavaScript / JQuery
80%
MySQL / MySQL Workbench
85%
Joomla
100%
Wordpress
60%
Git
90%
Photoshop CS5/6
85%
  • Ruby
  • Ruby on Rails
  • Laravel
  • CodeIgniter
  • SQLite
  • LESS
  • SASS
  • Parallax
  • Linux Server
  • Apache 2
  • Metasploit
  • Armitage
  • NMap
  • AngularJS

Muchas veces nos encontramos que en nuestra aplicación o pagina web queremos implementar la subida de archivos a nuestro servidor, bien para estos casos podemos usar esta sencilla clase, que nos permite validar extensiones, renombrar, validar por tamaño, añadir prefijos, etc.

Configuración

Lo único que debemos hacer para usar esta clase es importarla en el script donde la usaremos:

include 'upload.class.php';

 Uso

Bien ahora veamos un ejemplo de uso de esta clase, supongamos que tenemos un formulario desde el cual subimos un archivo:

upload.html

<!DOCTYPE html>
<html>
    <head>
        <title>Subida de Archivos</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
    <form action="upload.php" method="POST" enctype="multipart/form-data">
        <label for="file">Filename:</label>
        <input type="file" name="file" id="file"><br>
        <input type="submit" name="submit" value="Submit">
    </form>
    </body>
</html>

Es importante recordar que cuando queremos enviar archivos debemos establecer en el formulario el atributo enctype con el valor multipart/form-data, ademas debemos usar el elemento input con el atributo type en file y asignarme un nombre desde el atributo name.

upload.php

include 'upload.class.php';
if (isset($_FILES['file'])) {
    $uploaded = new Upload($_FILES['file']);
    $types  = array('image/png');
    $ext    = array('png');
    $size   = 1;
    $uploaded->validate($size, $ext, $types);
    $estado = $uploaded->save('stored/');
    if($estado){
       echo "Imagen Guardada correctamente.";
       $uploaded->rename('imagen1.png');
    } else {
       echo "Imagen no valida.";
    }
}

Bien, vamos a comentar el código de arriba, lo primero que debemos fijarnos es que importamos la clase upload.class.php, esto es lógico ya que de lo contrario no podríamos usarla. En la linea 2 realizamos una evaluación sobre la variable $_FILES, para saber si se ha enviado o no un archivo, en caso afirmativo precederemos al proceso de dicho archivo. Una vez confirmado el envió del archivo instanciaremos un objeto de la clase Upload pasando le como único parámetro del constructor el array $_FILES con su correspondiente referencia al nombre del campo del formulario desde el que se a enviado el archivo, en este caso "file". Seguido creamos tres variables en las que estableceremos los parámetros de validación del archivo:

  • $types: es un array con los tipos MIME permitidos.
  • $ext: es un array con las extensiones permitidas.
  • $size: es el tamaño máximo en MB del archivo.

Ahora solo tenemos que pasar le estas variables al método validate() para que efectué la validación. Este método devolverá TRUE si el archivo cumple los requisitos y FALSE en caso contrario. Una vez hemos realizado la validación precederemos a guardar la imagen en el directorio deseado, en nuestro ejemplo usaremos la carpeta "stored", cabe destacar que debemos añadir la barra "/" al final del nombre de la carpeta donde se subirán las imágenes. Finalmente evaluamos si la subida a sido correcta o no y mostramos un mensaje informativo a los usuarios. Adicionamente podemos renombrar el archivo subido usando el método rename()

Enlaces

API: class-Upload

GitHub: files-upload-class

 

Formation and Experience

This is the formation that I have and the places where I worked

2015
to
NOW

SofCloudIT an Ingram Micro Company

Rol: Cloud Backend Developer
Desciption: Develop backend APS and endpoint logic.

2012
to
2015

Sayga Informática

Rol: Programmer and Web Designer
Desciption: Design and web programming, maintenance and updating of web systems.

2008
to
2012

PC Coste Laredo

Rol: Repair Technician
Desciption: Repair and maintenance of computer systems, both hardware and software. Installation of networked computer systems and servers.


2012
to
2014

Web Applications Development

Type: Certificate of Higher Education
Desciption: Development, implementation, and maintenance of web applications.

2010
to
2012

Management Network Operating Systems

Type: Certificate of Higher Education
Desciption: Configure, manage and maintain computer systems, ensuring the functionality, integrity of resources and system services.

2006
to
2008

Exploitation of Information Systems

Type: Vocational Education and Training
Desciption: Install, configure and maintain computer system isolated or networked.