Aprenda a crear su propio servicio de subida de archivos gracias a PHP, el lenguaje web más poderoso a nivel mundial.
Subir archivos al servidor mediante PHP (sin usar FTP)
En este artículo aprenderemos a crear un simple formulario que nos permita subir archivos a nuestro servidor, empleando el popular lenguaje de programación PHP. Si bien es bastante básico, nos permite hacer un par de configuraciones, tales como el tamaño máximo del archivo a subir y las extensiones de archivos permitidas.
Cosas a tener en cuenta
- Para que el código funcione necesitamos disponer de un servidor php que tenga habilitada la opción de subir archivos. Prácticamente todos los servidores tienen esta opción habilitada por defecto.
- Si bien nosotros mismos vamos a definir el tamaño máximo que puede tener un archivo a ser subido, hay que destacar que existe una variable de configuración en el archivo php.ini (es decir, el “corazón” del servidor PHP) que limita el tamaño de los archivos subidos. ¿Qué quiere decir? Que por más que nosotros determinemos que el tamaño máximo sea de 5mb, si en el servidor está configurado para ser de 2mb, no podemos “sobreponernos” a esta configuración del servidor, y el tamaño máximo será de 2mb.
¿De qué se compone el ejemplo?
El ejemplo se compone de dos archivos principales y una carpeta.
- form.php: archivo PHP, aunque bien podría ser HTML (no contiene código php), que contiene el formulario en donde colocaremos los archivos a subir.
- subir.php: archivo PHP que se encarga de hacer el trabajo sucio: hacer todas las validaciones sobre el archivo (peso y extensión) y, si no hay problemas, subir el archivo.
- directorio: directorio por defecto donde se enviarán los archivos subidos, aunque podemos modificar esta configuración en el archivo subir.php.
PASO 1: Crear el directorio “directorio”
Para que todo funcione correctamente debemos disponer de un directorio (carpeta) donde se colocarán los archivos subidos. En este ejemplo el directorio se llama, homenajeando a la creatividad, “directorio”.
PASO 2: Código del archivo form.php
Por motivos de seguridad, no se nos permite poner el código directamente aquí. Haga click aquí para ver el código de form.php
PASO 3: Código del archivo subir.php
Por motivos de seguridad, no se nos permite poner el código directamente aquí. Haga click aquí para ver el código de subir.php
Y eso sería todo. Si han seguido los pasos al pie de la letra, deberían tener ya su propio sistema de “file-uploading” funcionando correctamente.
ME APARECE ESTO:
0 and $peso_archivo > $max_size) { $permiso = false; echo ‘El archivo excede los ‘ . $max_size . ‘ kb de peso. El archivo pesa ‘ . round($peso_archivo) . ‘ kb’; } if ($permiso) { if (!in_array($extension_archivo, $extensiones_permitidas)){ $permiso = false; echo ‘La extensión ‘ . $extension_archivo . ‘ no tiene permiso de subida’; } } if ($permiso) { if (@move_uploaded_file($tmp_archivo, $directorio . $nombre_archivo)){ echo ‘El archivo ‘ . $nombre_archivo . ‘ ha sido subido correctamente’; }else{ echo ‘Ha habido un error al subir el archivo. Por favor, inténtelo de nuevo’; } } function extension($archivo) { $dat = explode(’.', $archivo); return $dat[count($dat)-1]; } ?>
QUE AGO?
Porfavor Enbiame un mail. musica.info@yahoo.com.ar
Amm verifica si tienes activados los permisos de subida.
Ademas de que el directorio que creaste tenga los permisos de lectura y escritura n_n SALUDOS!!!
Muchas gracias, me has salvado la vida, muy bien explicado y organizado, de nuevo gracias!!!
Hola me sale este error sabes a k se puede deber ??? Array ( [name] => 75180_1613826180084_1069180910_31735306_4467723_n.jpg [type] => image/jpeg [tmp_name] => /tmp/phpV5Fbyi [error] => 0 [size] => 79130 ) Ha habido un error al subir el archivo. Por favor, inténtelo de nuevo
Your place is fvalueble for me. Thanks!…
muchas gracias amigo ya andaba yo preguntando como podía hacer eso pero ya encontré como solo tienes que agregar esto a tu .htaccess tiene que quedar de la forma que les presento abajo fue la única que me funciono…saludo desde http://www.mp3letras.com
#set max upload file size
php_value upload_max_filesize 20M
#set max post size
php_value post_max_size 10M
# Do not remove this line, otherwise mod_rewrite rules will stop working
RewriteBase /
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress