3 min de lectura

Permitir en nuestros sitios que el usuario pueda colocar archivos en nuestro servidor es una de las tareas mas peligrosas, sin embargo muchas veces necesaria.

Vamos entonces a crear un script que maneje algunas medidas de seguridad al momento de hacer la carga de los archivos.

Creamos un formulario con un campo de tipo archivo al que llamamos “file”

Al especificar enctype=”multipart/form-data” los contenidos de cada archivo se empaquetan para su envío en una sección separada de un documento multiparte.

Ahora procedemos a crear el archivo subir.php

La variable global $_FILES

El contenido de la variable global $_FILES son los archivos que han sido recibidos por medio un formulario con la encriptación multipart/form-data.

$_FILES[‘nombre_en_el_form’][‘name’]
El nombre original del archivo en la máquina cliente.

$_FILES[‘nombre_en_el_form’][‘type’]
El tipo mime del archivo, si el navegador proporciona esta información. Un ejemplo podría ser “image/gif”. Este tipo mime, sin embargo no se verifica en el lado de PHP y por lo tanto no se garantiza su valor.

$_FILES[‘nombre_en_el_form’][‘size’]
El tamaño, en bytes, del archivo subido.

$_FILES[‘nombre_en_el_form’][‘tmp_name’]
El nombre temporal del archivo en el cual se almacena el archivo cargado en el servidor.

$_FILES[‘nombre_en_el_form’][‘error’]
El código de error asociado a esta carga de archivo. Este elemento fue añadido en PHP 4.2.0

Los archivos, por defecto se almacenan en el directorio temporal por defecto del servidor, a menos que otro lugar haya sido dado con la directiva upload_tmp_dir en php.ini

La función move_uploaded_file

Esta función mueve un archivo subido a una nueva ubicación.

move_uploaded_file ( archivo , destino_y_nombre )

Devuelve TRUE en caso de éxito.

Si filename no es un archivo válido subido, no sucederá ninguna acción, y move_uploaded_file() devolverá FALSE.

Si filename es un archivo subido válido, pero no puede ser movido por algunas razones, no sucederá ninguna acción, y move_uploaded_file() devolverá FALSE. Adicionalmente, se emitirá un aviso.

Recuerde que la ruta donde quiere guardar el archivo debe existir y además debe tener permisos de escritura.
¿Te gustó este artículo?

Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.

4 COMENTARIOS

  1. Hola Michelle, después de subir el archivo hay posibilidad de abir de nuevo el archivo, modificarlo y volverlo a guardar utilizando funciones de php

    • Claro que si Evelyn, al momento en que tu haces el guardado del archivo con

      Debiste asignar la ruta donde quedaría guardado, y de ese modo, con PHP ya puedes acceder al archivo y modificarlo.
      Por ejemplo para imágenes es muy común utilizar GD para redimensionarlas y generar los thumbnails.

    • Que tal Juan,
      No puede subir archivos directamente con AJAX, pero hay un plugin de jQuery para lo que necesitas.
      Se llama jquery.form

Deja tus comentarios

This site uses Akismet to reduce spam. Learn how your comment data is processed.