Flux rss

[PHP] Subir archivos

Publicado por Carlos-vialfa, última actualización le jueves 14 agosto 2008 à 19:18:11 por Carlos-vialfa
El lenguaje PHP permite administrar los archivos enviados (subidos) gracias a un formulario HTML.

Formulario de envío de archivos


Lo primero que se debe hacer es crear un formulario HTML, que permita al usuario abrir una ventana de diálogo para seleccionar el archivo que se desea enviar:
<FORM method="POST" ENCTYPE="multipart/form-data">
          <INPUT type=hidden name=MAX_FILE_SIZE  VALUE=2048>
          <INPUT type=file name="nom_del_archivo">
          <INPUT type=submit value="Enviar">
</FORM>


Es importante que no olvide el atributo ENCTYPE="multipart/form-data" de lo contrario, no tendrá ningún efecto.

Por otra parte el campo MAX_FILE_SIZE indica el tamaño máximo del fichero que puede subir el navegador, pero eso no es suficiente para asegurarse que los archivos subidos no sobrepasarán un determinado tamaño teniendo en cuenta que todos los navegadores no toman en cuenta sistemáticamente este valor. El valor del tamaño máximo del archivo subido es ajustable en el archivo de configuración php.ini.

Configuración de PHP para subir archivos


El archivo de configuración php.ini contiene directivas para autorizar o desautorizar el envío de archivos por medio de un formulario y también configurarlo:

file_uploads= On/Off permite autorizar o desautorizar el envío de archivos.
upload_tmp_dir = directorio permite definir el directorio temporal donde se colocará el archivo cargado.
upload_max_filesize = 2M permite definir el tamaño máximo autorizado del archivo. Si este límite es sobrepasado, el servidor enviará un código de error.
post_max_size indica el tamaño máximo de los datos enviados en un formulario. Esta directiva prima sobre upload_max_filesize, por lo que hay que asegurarse de tener post_max_size supeior a upload_max_filesize
Si no tiene acceso a la configuración (caso de un sitio web alojado en el servidor del proveedor de acceso o en el caso de un alojamiento mutualizado), entonces puede verificar la configuración con la función phpinfo():

<?
  phpinfo();
?> 

Recuperar el archivo con PHP


Puede acceder al archivo y a toda la información con respecto a éste por medio de la variable global $_FILES[].
Para mostrar lo que contiene, puede instalar el script siguiente:
<pre><?  print_r($_FILES); ?></pre>


La salida de este código será de la forma siguiente:
Array
(
    [nom_du_fichier] => Array
        (
            [name] => MiHermozaImage.jpg
            [type] => image/jpg
            [tmp_name] => ruta_completa_del_archivo_subido
            [error] => 0
            [size] => 1000
        )

) 


En el caso que sigue a continuación se trata de una imagen JPEG que pesa 1 Mo.


Los campos $_FILES[name], $_FILES[type], $_FILES|error], $_FILES[size] permiten efectuar tests del tipo de archivo, el tamaño, el nombre y verificar si ha habido errores..

De este modo, podrá tratar los errores de la siguiente manera:
<?      
if ($_FILES['nom_du_fichier']['error']) {
          switch ($_FILES['nom_du_fichier']['error']){
                   case 1: // UPLOAD_ERR_INI_SIZE
                   echo"El archivo sobrepasa el limite autorizado por el servidor(archivo php.ini) !";
                   break;
                   case 2: // UPLOAD_ERR_FORM_SIZE
                   echo "El archivo sobrepasa el limite autorizado en el formulario HTML !");
                   break;
                   case 3: // UPLOAD_ERR_PARTIAL
                   echo "El envio del archivo ha sido suspendido durante la transferencia!";
                   break;
                   case 4: // UPLOAD_ERR_NO_FILE
                   echo "El archivo que ha enviado tiene un tamaño nulo !");
                   break;
          }
}
else {
 // $_FILES['nom_del_archivo']['error'] vale 0 es decir UPLOAD_ERR_OK
 // lo que significa que no ha habido ningún error
} ?> 

Gracias a la función move_uploaded_files() es posible transferir la imagen del directorio temporal a un directorio de destino:

<?

if ((isset($_FILES['nom_del_archivo]['archivo'])&&($_FILES['nom_del_archivo']['error'] ==
 UPLOAD_ERR_OK)) {
$ruta_destino = '/var/www/archivos/';
move_uploaded_file($_FILES['nom_del_archivo']['tmp_name'], $ruta_destino.$_FILES
['nom_del_archivo']['name']);
}
?> 


PD: El artículo original fue escrito por Jeff contribuidor de CommentCaMarche
Compartir archivos en mi red local (Resuelto)Hola.., quisiera empezar un proyecto aqui en mi trabajo, para poder compartir archivos entre los equipos de mi red local. Mi idea es esta, quiero poner un equipo de computo(servidor) en donde se puedan subir archivos y puedan accesar cualquier usuario... es.kioskea.net/forum/affich-3975-compartir-archivos-en-mi-red-local
Enviar archivos grandes por emailNo es fácil enviar archivos de gran tamaño a nuestros amigos por correo electrónico. La mayoría de servidores de mensajería no aceptan archivos de más de 5 Mo. Sin embargo existen otras alternativas: Los servidores FTP Si no tienes acceso a... es.kioskea.net/faq/sujet-714-enviar-archivos-grandes-por-email
Uso de los comandos FTP FTP (Protocolo de transferencia de archivos) es un protocolo -es decir, un lenguaje estándar que permite la comunicación entre dos equipos. Se utiliza para que ordenadores de diferentes tipos (o con dos sistemas operativos diferentes) puedan... es.kioskea.net/utile/ftp.php3
Cómo reproducir un archivo RMVBLa extensión RMVB (Real Media Variable Bitrate) es una extensión para Real Player; para poder ver los archivos con esta extensión debemos tener los codecs Real Player. Puedes descargar el reproductor Real Player del siguiente enlace: Descargar Real... es.kioskea.net/faq/sujet-406-como-reproducir-un-archivo-rmvb
Modificar su archivo Hosts¿POR QUÉ modificar el archivo Hosts? ¿CÓMO modificar el archivo Hosts? ¿Dónde se encuentra el archivo Hosts original? ¿Qué contiene? Método de modificación Restaurar el archivo Hosts a su estado original ¿POR QUÉ modificar el archivo... es.kioskea.net/faq/sujet-153-modificar-su-archivo-hosts
[Audio] Convertir un archivo de formato WMA a MP3Para convertir un archivo del formato WMA al formato MP3, debemos utilizar alguno de los programas de conversión siguientes: Free Mp3 Wma Converter dBpower-AMP Music Converter (DMC) MediaCoder GX::Transcoder Por otra parte, CDex que es un... es.kioskea.net/faq/sujet-457-audio-convertir-un-archivo-de-formato-wma-a-mp3
Se me cierra msn al enviar archivos (Resuelto)Hola, despues del arebato con el msn, puedo usar el 7.5 pero cada vez ke kiero enviar una archivo me saca de sesion o me cierra msn... algun alma caritativas ke me pueda ayudar? es.kioskea.net/forum/affich-2192-se-me-cierra-msn-al-enviar-archivos
Descargar AbleFTPAbleFTP es un cliente FTP con el cual podremos gestionar nuestros archivos que tenemos o queremos tener en internet. Podremos subir y bajar archivos simultaneamente para un trabajo mas dinamico. Ademas, AbleFTP genera un Log con todas las operaciones ... es.kioskea.net/telecharger/telecharger-891-ableftp
Descargar SmartFlipEs un programa que permite transferir archivos mediante el protocolo FTP.Es posible configurar la aplicación para que automáticamente descarga archivos desde el servidor FTP, lo que permite editar y subir más tarde es.kioskea.net/telecharger/telecharger-642-smartflip
Descargar PDFtoHTMLPDFtoHTML puede abrir archivos PDF. Este reconoce los textos, la disposición y muchos gráficos. Puede guardar en formato HTML, RTF o archivo TXT y está listo a subir sus documentos a Internet. Puede crear versiones de texto de documentos PDF y utiliza... es.kioskea.net/telecharger/telecharger-146-pdftohtml
Neil Young publicará su archivo de vídeos musicales en Blu-rayEl músico canadiense Neil Young, durante el concierto ofrecido el pasado 14 de febrero en París, con motivo de una gira europea. El músico de folk-rock canadiense Neil Young anunció el martes que se ha unido a Sun Microsystems para lanzar su archivo... es.kioskea.net/actualites/neil-young-publicara-su-archivo-de-videos-musicales-en-blu-ray-10351-actualite.php3
Webmastering - Indización de sitios "Posicionamiento web" es un término que, a grandes rasgos, hace referencia a todas las técnicas que se emplean para mejorar la visibilidad de un sitio web: Técnica de referencia, que consiste en presentar el sitio web en herramientas de búsqueda... es.kioskea.net/web/referencement.php3
Cómo compartir archivos en Windows XP Compartir archivos consiste en poner a disponibilidad el contenido de uno o más directorios a través de la red. Todos los sistemas de Windows cuentan con dispositivos estándar que facilitan el hecho de compartir el contenido de un directorio. No... es.kioskea.net/configuration-reseau/partage-fichiers.php3
Sistemas operativos - Formatos y extensiones de archivos Comentario: La siguiente lista no es exhaustiva y algunos nombres de extensiones pueden tener varias funciones. En cuanto a los programas propuestos para utilizar estos archivos, no son necesariamente los únicos o los más adecuados. Extensión... es.kioskea.net/systemes/format.php3
Todas las respuestas a « Subir archivos »