SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Transferencia de ficheros


Comprobación de la
                                       Requisitos de configuración
configuración                              Cuando publicamos en un hosting no tenemos acceso al fichero de configuración php.
                                       ini pero sí podemos conocer su configuración mediante el script info.php.
Antes de empezar con este tema
debemos comprobar cuál es la              Recordemos que ese fue nuestro primer script –lo hemos creado y utilizado– para
configuración de nuestro php.ini.      comprobar nuestra instalación y lo hemos guardado con ese nombre en el root de
                                       nuestro servidor –C:Apachehtdocs– así que podremos acceder a él escribiendo como
Si por alguna circunstancia los        dirección http://localhost/info.php.
valores no coincidieran con los que
tenemos aquí a la derecha,
tendríamos que abrir php.ini y
                                          La abundante lista que nos muestra info.php contiene las siguientes líneas (las
modificar aquellas directivas.         podemos localizar fácilmente porque están ordenadas alfabéticamente), que en nuestro
                                       caso –configuración por defecto– tendrán los valores que vemos en la imagen.
Si te apetece, y como simple
experimento, podemos cambiar el
límite del tamaño máximo de
transferencia poniendo:

upload_max_filesize=500K

un valor más reducido, que nos
servirá para hacer una prueba muy
sencilla.
                                          Es imprescindible que file_uploads=On (tal como aparece en la imagen) y resulta
Transferencia de ficheros              muy útil también conocer el valor de upload_max_filesize que por defecto –tal como
                                       ves en la imagen– es de 2Mb. La primera directiva nos dice que PHP sí permite subir
La transferencia de un fichero         ficheros al servidor y la segunda nos indica el tamaño máximo (en Mbytes) de los
requiere dos documentos: un            ficheros que pueden ser objeto de esa transferencia.
formulario que la inicie y un script
que la recoja.                         Formulario para transferencia de archivos
El formulario                             Observa que en el formulario hemos insertado una variable oculta (hidden) con el fin
                                       de limitar el tamaño máximo e impedir la transferencia de ficheros que excedan ese
Se diferencia del que hemos visto
en páginas anteriores en tres          tamaño.
aspectos. Dos de ellos se refieren
a cambios dentro de la etiqueta         <HTML>
<form> y el tercero es un nuevo         <BODY>
tipo de input del que aún no            <FORM ENCTYPE="multipart/form-data" ACTION="ejemplo86.php"
hemos hablado.                          METHOD="post">
En la etiqueta <form> hemos de          # con este input "oculto" establecemos el limite máximo
incluir –obligatoriamente– el           # del tamaño del fichero a transferir. En este ejemplo 1.000.000 bytes
method='POST' y ENCTYPE =               <INPUT type="hidden" name="lim_tamano" value="1000000">
"multipart/form-data" ya que            <p><b>Archivo a transferir<b><br>
no soporta ni otro método ni otra       <INPUT type="file" name="archivo"></p>
forma de encriptación.                  <p><INPUT type="submit" name="enviar" value="Aceptar"></p>
                                        </FORM>
El cuerpo del formulario ha de
                                        </BODY>
contener un nuevo tipo de input
que utiliza la siguiente sintaxis:
                                        </HTML>

<input type='file' name='nm'>
                                                                         ejemplo85.php
La tranferencia
                                          Puedes utilizar el script invocado por la action de formulario anterior (es este que
Una vez enviado el formulario, el
                                       tienes aquí debajo) para hacer algunas comprobaciones.
fichero transferido se guarda en un
directorio temporal del servidor –
                                          Envía un fichero cualquiera –de menos de 500K– y verás que el error es 0. Repite el
salvo que php.ini especifique una
                                       envío, ahora con un fichero que sobrepase ese tamaño, y comprobarás que el error toma
cosa distinta– con un nombre que
le es asignado de forma                valor 1 dado que la directiva upload_max_filesize=500K del fichero php.ini habrá
automática, y, además, en las          bloqueado la transferencia.
variables predefinidas $_FILES (si
la versión admite superglobales) y      <?
en $HTTP_POST_FILES se                  /* Mediante el bucle foreach leemos el array $_FILES.
recogerán datos relativos al
                                           Observa la sintaxis. Escribimos como nombre del array
contenido del fichero y a los
                                           $_['archivo'] con lo cual foreach leerá los elementos
resultados de la transferencia.
                                           del array que tienen 'archivo" como primer indice
El formato de $_FILES y de                 (coincide con el name que hemos puesto
$HTTP_POST_FILES es el de                  en la etiqueta input=file del formulario) */
array bidimensional.
                                        foreach ($_FILES['archivo'] as $indice=>$valor){
El primero de sus índices es el                 print $indice."--->".$valor."<br>";
nombre de variable usado para la
transferencia (el especificado como
name='nm' en el input type='file').
                                        }
                                        /*Dependiendo del navegador que estés utilizando puede ocurrir
Los segundos índices –se trata de       que varían los valores del índice type sean distintos.
un array asociativo– son estos:         Cuando se trata de un fichero jpg, con IE devolverá image/pjpeg,
name, type, tmp_name, error y           mientras que con Mozilla, Firefox, Opera y Netscape
size.                                   devolverá image/jpeg.*/
En ellos se recogen: el nombre
                                        /* repetimos el proceso anterior ahora usando la otra
original de fichero transferido, su
formato, el nombre con el que ha           variable predefinida (recuerda que esta no es superglobal)
sido guardado en el directorio             $HTTP_POST_FILES y podremos visualizar los indices
temporal, el tipo de error de              y los valores del fichero transferido */
transferencia y el tamaño del
archivo.                                foreach ($HTTP_POST_FILES['archivo'] as $indice=>$valor){
                                                print $indice."--->".$valor."<br>";
El error puede ser CERO o UNO. Si       }
es CERO indica que la
                                        ?>
transferencia se ha realizado con
éxito. En caso contrario, el valor
de ese error es UNO.                      Cuando está habilitada la opción de transferencias de ficheros es conveniente –en
                                       previsión de sorpresas desagradables– tomar algunas cautelas. Una de ellas sería limitar
                                       la posibilidad de transferencia a determinados tipos de archivos –imágenes, por ejemplo–
Copia del fichero
                                       impidiendo con ello que pudieran transferirse al servidor ficheros de riesgo, tales como:
                                       ejecutables, virus, etcétera.
Tal como hemos visto, el fichero
transferido aún no está en el         Cuando se establece este tipo de limitaciones, PHP comprueba los contenidos de los
servidor. Por el momento se        ficheros sin tomar en consideración la extensión de los mismos. Con ello se evita el riesgo
encuentra en un directorio         de que puedan esconderse –cambiando la extensión– ficheros distintos de los permitidos.
temporal y será preciso hacer una
copia en nuestro espacio de           Aquí tienes un ejemplo de script que impide la transferencia de ficheros con extensión
servidor. Para este proceso puede
                                   distinta a .jpg o .gif.
utilizarse una función que ya
hemos visto en páginas anteriores:
                                        <?
copy(fich1, fich2)                      /* filtramos el tipo de archivos recibidos
donde fich1 sería el fichero
                                        de forma que solo se permitan imagenes en formato
temporal y fich2 el del nuevo           jpg ó gif. Si el fichero transferido tuviera formato
fichero.                                distinto, la función exit() acabaría la ejecución del script */

El primero de los nombres es el         if(!($_FILES['archivo']['type']=="image/pjpeg" OR
valor contenido en:                                         $_FILES['archivo']['type']=="image/jpeg" OR
                                                                $_FILES['archivo']['type']=="image/gif")){
$_FILES['nm']['tmp_name']
                                            print "El formato ".$FILES['archivo']['type'].
donde nm es el valor incluido                                                       " no está permitido";
como name en el formulario usado             exit();
para la transferencia y tmp_name         }else{
es una palabra reservada que debe                            # anidamos este segundo condicional
escribirse exactamente con esa                               # para guardar en una variable
sintaxis.                                                    # la extensión real del fichero
                                                             # mas adelante la utilizaremos
Si la versión de PHP fuera anterior
a 4.1.0 habría que utilizar                      if ($_FILES['archivo']['type']=="image/pjpeg" OR
$HTTP_POST_FILES en vez de                                    $_FILES['archivo']['type']=="image/jpeg" ){
$_FILES. En otros casos podrían                          $extension=".jpg";
usarse indistintamente ambos                     }else{
tipos de variable.                                       $extension=".gif";
                                                 }
El valor fich2 podría ser un nombre      }
cualquiera asignado en el propio         /* filtremos ahora el tamaño de modo que no supere
script –podemos verlo en el
                                         el máximo establecido en el hidden del formulario
ejemplo– o el nombre original del
fichero transferido. En este caso
                                         (logicamente ese valor no puede superar el valor máximo
habría que recogerlo del elemento        de la configuración de php, pero si puede ser menor)
del array anterior cuyo segundo          y también evitaremos archivos sin contenido,
índice es name.                          es decir con tamaño CERO */
                                        if($_FILES['archivo']['size']>$_POST['lim_tamano']
En la cadena fich2 podría incluirse                                           OR $_FILES['archivo']['size']==0){
–recuerda que debes ponerlo entre        print "El tamaño ".$FILES['archivo']['size']." excede el límite";
comillas– un path señalando el           exit();
directorio o subdirectorio donde
                                         }
queremos que guarde la copia. De
no incluirlo, el fichero se copiaría
en el directorio desde el que se        #   asignemos un nombre a la imagen transferida
está ejecutando el script.              #   de modo que se guarde en el servidor
                                        #   con un nombre distinto, asignado por nosotros
Sintaxis alternativa                    #   con ello, podemos evitar duplicidades de nombres
                                        #   ya que si existiera un fichero con el mismo nombre
La opción anterior tiene una
                                        #   que el enviado por el cliente, se sobreescribiría
alternativa, igual de eficiente y
mucho más segura. Se trata de:
                                         $nuevo_nombre="foto_abuelita";
move_uploaded_file(fich1, fich2)        # añadámosle la extensión real de fichero que teníamos
                                        # recogida en la variable nuevo_nombre
que tiene la misma utilidad que
copy y añade algunas ventajas             $nuevo_nombre .=$extension;
tales como:                             # aceptemos la transferencia siempre que el archivo tenga nombre
– Comprobar que el fichero ha sido      if ($_FILES['archivo']['tmp_name'] != "none" ){
transferido mediante el método          /* con la función copy
POST e impedir que se copie en el       pasaremos el archivo que está en el directorio temporal
servidor en caso de no cumplirse        al subdirectorio que contiene el script que estamos
esa condición.                          ejecutando. Podríamos incluir un path y copiarlo
                                        a otro directorio */
– Si la opción safe mode=on                         if (copy($_FILES['archivo']['tmp_name'], $nuevo_nombre)) {
(configuración de php.ini en modo
                                                              echo "<h2>Se ha transferido el archivo</h2>";
seguro) –por defecto está Off–
comprueba, además, que la
                                                            }
transferencia del fichero ha sido            }else{
realizada por el mismo usuario que           echo "<h2>No ha podido transferirse el fichero</h2>";
hace la petición de ejecución del       }
script, evitando que alguien,
maliciosamente, pueda mover             ?>
ficheros desde el directorio
temporal hasta el espacio de
servidor.                                                                           Usando
                                                              Usando «copy»
                                                                                    «move_uploaded_file»
¡Cuidado..!
Al usar esta función bajo Windows
conviene indicar en el parámetro
fich2 la ruta absoluta completa        Ejemplo de script para el caso register_globals=ON
junto con el nombre del fichero ya
que –de no hacerlo así– en               Aquí debajo incluimos el código del script que -de forma alternativa a los anteriores–
algunas ocasiones la imagen no         podría utilizarse con esta opción de configuración.
será transferida al directorio desde
el que se ejecuta el script.              Pese a su simplicidad te sugerimos no usarlo. Los anteriores compensan con creces su
                                       mayor complejidad sintáctica con la versatilidad –funcionan con cualquier opción de
register_globals = ON                  register global– y con la seguridad que añaden a las transacciones.
Con esta opción habilitada (ON)       <?
existe una posibilidad añadida.
                                      if ($archivo != "none" AND $archivo_size != 0
En ese caso, la sintaxis podría ser                                      AND $archivo_size<=$lim_tamano){
más simple ya que, en el script
indicado en la action del
formulario, se crearía una variable       if (copy ($archivo, $archivo_name)) {
cuyo nombre coincide con el valor               echo "<h2>Se ha transferido el archivo $archivo_name</h2>";
de name en el <INPUT                            echo "<br>Su tamaño es: $archivo_size bytes<br>";
type="FILE"> del formulario.                    echo "<br>El fichero es tipo: $archivo_type <br>";
                                                     }
Esta variable (supongamos que su      }else{
nombre es $archivo) tiene una             echo "<h2>No ha podido transferirse el fichero</h2>";
importante peculiaridad, ya que,          echo "<h3>su tamaño no puede exceder de $lim_tamano bytes</h2>";
además de guardar el fichero
                                      }
transferido, contiene (con el
formato que tenemos a
continuación) tres valores muy        ?>
importantes:

• $archivo_name (se añade
_name al nombre de la variable) y
recogerá el nombre del fichero         Ejercicio nº 29
transferido.
                                      Modifica el formulario que has creado en el ejercicio nº 9 añadiéndole la opción para que tus
• $archivo_size que contiene el       alumnos puedan enviarte –junto con los datos– una fotografía.
tamaño del fichero.                   Modifica también el script asociado a aquel formulario de forma que puedas asignar un
• $archivo_type que recoge el
                                      nombre a la fotografía, visualizarla –previamente copiada al directorio de trabajo– junto con
tipo de fichero.                      los datos personales y guardar los datos personales y el nombre de la imagen en un fichero.



                                                                        Anterior   Indice   Siguiente

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

57 Php. Funciones De Compresion
57 Php. Funciones De Compresion57 Php. Funciones De Compresion
57 Php. Funciones De Compresion
 
2 7 ficheros_php
2 7 ficheros_php2 7 ficheros_php
2 7 ficheros_php
 
Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3Curso TIC de PHP y MSQL Parte 3
Curso TIC de PHP y MSQL Parte 3
 
Curso Bash 1
Curso Bash 1Curso Bash 1
Curso Bash 1
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781
 
Dos 2 p 2q
Dos   2 p 2qDos   2 p 2q
Dos 2 p 2q
 
10 comandos basicos de linux
10 comandos basicos de linux10 comandos basicos de linux
10 comandos basicos de linux
 
(86)resumen visual basic
(86)resumen visual basic(86)resumen visual basic
(86)resumen visual basic
 
25 protocolo ligero de acceso a directorios ldap
25  protocolo ligero de acceso a directorios ldap25  protocolo ligero de acceso a directorios ldap
25 protocolo ligero de acceso a directorios ldap
 
Comandos unix
Comandos unixComandos unix
Comandos unix
 
Actividad3.4
Actividad3.4Actividad3.4
Actividad3.4
 
Gestion de paquetes
Gestion de paquetesGestion de paquetes
Gestion de paquetes
 
Php slideshare
Php slidesharePhp slideshare
Php slideshare
 
Actividad3.1
Actividad3.1Actividad3.1
Actividad3.1
 
Hhchfxhcg
HhchfxhcgHhchfxhcg
Hhchfxhcg
 
Dns(jorgemoya)
Dns(jorgemoya)Dns(jorgemoya)
Dns(jorgemoya)
 

Destacado

inversion de matrices
inversion de matricesinversion de matrices
inversion de matricescynthiaellen
 
"Mézclate conmigo"
"Mézclate conmigo""Mézclate conmigo"
"Mézclate conmigo"Opus Dei
 
Notre Dame
Notre DameNotre Dame
Notre Dameenroba
 
El planeta de_los_proverbios
El planeta de_los_proverbiosEl planeta de_los_proverbios
El planeta de_los_proverbiosCalidad de vida
 
Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...
Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...
Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...Juan Merodio
 
Panorama del Sistema Educativo en España
Panorama del Sistema Educativo en EspañaPanorama del Sistema Educativo en España
Panorama del Sistema Educativo en EspañaUnión Profesional
 
Encuadre educación física III
Encuadre educación física IIIEncuadre educación física III
Encuadre educación física IIIPablo Cancino
 
Estados hipertensivos del embarazo
Estados hipertensivos del embarazoEstados hipertensivos del embarazo
Estados hipertensivos del embarazo87880404
 
somo esposo y ahora??
somo esposo y ahora??somo esposo y ahora??
somo esposo y ahora??byron
 
CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015
CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015
CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015Nombre Apellidos
 
Leyes que todo agilista debería conocer
Leyes que todo agilista debería conocerLeyes que todo agilista debería conocer
Leyes que todo agilista debería conocerRodrigo Corral
 
Tutorial de slideshare by jean
Tutorial de slideshare by jeanTutorial de slideshare by jean
Tutorial de slideshare by jeanExcaliburJEAN
 
Windows 7 la guia de bolsillo
Windows 7 la guia de bolsilloWindows 7 la guia de bolsillo
Windows 7 la guia de bolsilloNestorAraujo
 
1 teorias-sociologicas-educacion-1227721436311996-9
1 teorias-sociologicas-educacion-1227721436311996-91 teorias-sociologicas-educacion-1227721436311996-9
1 teorias-sociologicas-educacion-1227721436311996-9Eduardo Fernández
 
10 la matemática-de-dios
10 la matemática-de-dios10 la matemática-de-dios
10 la matemática-de-diosjauregui88
 

Destacado (20)

inversion de matrices
inversion de matricesinversion de matrices
inversion de matrices
 
"Mézclate conmigo"
"Mézclate conmigo""Mézclate conmigo"
"Mézclate conmigo"
 
Notre Dame
Notre DameNotre Dame
Notre Dame
 
El planeta de_los_proverbios
El planeta de_los_proverbiosEl planeta de_los_proverbios
El planeta de_los_proverbios
 
Barribook tv
Barribook tvBarribook tv
Barribook tv
 
Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...
Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...
Lo + Destacado del Último Mes en Marketing Digital y Redes Sociales (Octubre ...
 
Estres laboral
Estres laboralEstres laboral
Estres laboral
 
Panorama del Sistema Educativo en España
Panorama del Sistema Educativo en EspañaPanorama del Sistema Educativo en España
Panorama del Sistema Educativo en España
 
Encuadre educación física III
Encuadre educación física IIIEncuadre educación física III
Encuadre educación física III
 
8704
8704 8704
8704
 
PASO 6 de los Ocho pasos para el desarrollo de una investigación
PASO 6 de los Ocho pasos para el desarrollo de una investigaciónPASO 6 de los Ocho pasos para el desarrollo de una investigación
PASO 6 de los Ocho pasos para el desarrollo de una investigación
 
Universal
UniversalUniversal
Universal
 
Estados hipertensivos del embarazo
Estados hipertensivos del embarazoEstados hipertensivos del embarazo
Estados hipertensivos del embarazo
 
somo esposo y ahora??
somo esposo y ahora??somo esposo y ahora??
somo esposo y ahora??
 
CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015
CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015
CARTA FILÀ MARROCS DE XIXONA MIG ANY 2015
 
Leyes que todo agilista debería conocer
Leyes que todo agilista debería conocerLeyes que todo agilista debería conocer
Leyes que todo agilista debería conocer
 
Tutorial de slideshare by jean
Tutorial de slideshare by jeanTutorial de slideshare by jean
Tutorial de slideshare by jean
 
Windows 7 la guia de bolsillo
Windows 7 la guia de bolsilloWindows 7 la guia de bolsillo
Windows 7 la guia de bolsillo
 
1 teorias-sociologicas-educacion-1227721436311996-9
1 teorias-sociologicas-educacion-1227721436311996-91 teorias-sociologicas-educacion-1227721436311996-9
1 teorias-sociologicas-educacion-1227721436311996-9
 
10 la matemática-de-dios
10 la matemática-de-dios10 la matemática-de-dios
10 la matemática-de-dios
 

Similar a 56 Php. Transferencia De Ficheros

Manejo de datos blob con php y my sql
Manejo de datos blob con php y my sqlManejo de datos blob con php y my sql
Manejo de datos blob con php y my sqltavo_rojas22
 
78 Php. Headers Y Visualizacion
78 Php. Headers Y Visualizacion78 Php. Headers Y Visualizacion
78 Php. Headers Y VisualizacionJosé M. Padilla
 
05 Php. Configuracion De Php
05 Php. Configuracion De Php05 Php. Configuracion De Php
05 Php. Configuracion De PhpJosé M. Padilla
 
77 Php. AñAdir Nuevas Fuentes Para Pdf
77 Php. AñAdir Nuevas Fuentes Para Pdf77 Php. AñAdir Nuevas Fuentes Para Pdf
77 Php. AñAdir Nuevas Fuentes Para PdfJosé M. Padilla
 
Hacking uploaders
Hacking uploadersHacking uploaders
Hacking uploaderslinenoise
 
Desarrollo de sistios web
Desarrollo de sistios webDesarrollo de sistios web
Desarrollo de sistios webesmartcrimt
 
Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11jojojojojo25
 
Trabajo de compu
Trabajo de compuTrabajo de compu
Trabajo de compuzxyw
 
88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En TablasJosé M. Padilla
 
92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como Cgi92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como CgiJosé M. Padilla
 
Laboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoLaboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoFelipe Moreno
 
PHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadPHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadSpacetoshare
 
Formularios Y Archivos En Php
Formularios Y Archivos En PhpFormularios Y Archivos En Php
Formularios Y Archivos En PhpConfesorAD
 
19 Php. Utilizando Formularios
19 Php. Utilizando Formularios19 Php. Utilizando Formularios
19 Php. Utilizando FormulariosJosé M. Padilla
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Textonakaryortegaleon
 

Similar a 56 Php. Transferencia De Ficheros (20)

Manejo de datos blob con php y my sql
Manejo de datos blob con php y my sqlManejo de datos blob con php y my sql
Manejo de datos blob con php y my sql
 
78 Php. Headers Y Visualizacion
78 Php. Headers Y Visualizacion78 Php. Headers Y Visualizacion
78 Php. Headers Y Visualizacion
 
05 Php. Configuracion De Php
05 Php. Configuracion De Php05 Php. Configuracion De Php
05 Php. Configuracion De Php
 
77 Php. AñAdir Nuevas Fuentes Para Pdf
77 Php. AñAdir Nuevas Fuentes Para Pdf77 Php. AñAdir Nuevas Fuentes Para Pdf
77 Php. AñAdir Nuevas Fuentes Para Pdf
 
Hacking uploaders
Hacking uploadersHacking uploaders
Hacking uploaders
 
54 Php. La Opcion Include
54 Php. La Opcion Include54 Php. La Opcion Include
54 Php. La Opcion Include
 
Desarrollo de sistios web
Desarrollo de sistios webDesarrollo de sistios web
Desarrollo de sistios web
 
Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11
 
Capitulo 9
Capitulo 9Capitulo 9
Capitulo 9
 
Trabajo de compu
Trabajo de compuTrabajo de compu
Trabajo de compu
 
88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas
 
92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como Cgi92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como Cgi
 
Laboratorio 3 Andres Moreno
Laboratorio 3 Andres MorenoLaboratorio 3 Andres Moreno
Laboratorio 3 Andres Moreno
 
Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 
PHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadPHP Tema 7 - Seguridad
PHP Tema 7 - Seguridad
 
Archivos C++
Archivos C++Archivos C++
Archivos C++
 
Formularios Y Archivos En Php
Formularios Y Archivos En PhpFormularios Y Archivos En Php
Formularios Y Archivos En Php
 
19 Php. Utilizando Formularios
19 Php. Utilizando Formularios19 Php. Utilizando Formularios
19 Php. Utilizando Formularios
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 

Más de José M. Padilla

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTJosé M. Padilla
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0José M. Padilla
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busquedaJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionJosé M. Padilla
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.José M. Padilla
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.José M. Padilla
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20José M. Padilla
 

Más de José M. Padilla (20)

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busqueda
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20
 

Último

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Luis Olivera
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 

Último (20)

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 

56 Php. Transferencia De Ficheros

  • 1. Transferencia de ficheros Comprobación de la Requisitos de configuración configuración Cuando publicamos en un hosting no tenemos acceso al fichero de configuración php. ini pero sí podemos conocer su configuración mediante el script info.php. Antes de empezar con este tema debemos comprobar cuál es la Recordemos que ese fue nuestro primer script –lo hemos creado y utilizado– para configuración de nuestro php.ini. comprobar nuestra instalación y lo hemos guardado con ese nombre en el root de nuestro servidor –C:Apachehtdocs– así que podremos acceder a él escribiendo como Si por alguna circunstancia los dirección http://localhost/info.php. valores no coincidieran con los que tenemos aquí a la derecha, tendríamos que abrir php.ini y La abundante lista que nos muestra info.php contiene las siguientes líneas (las modificar aquellas directivas. podemos localizar fácilmente porque están ordenadas alfabéticamente), que en nuestro caso –configuración por defecto– tendrán los valores que vemos en la imagen. Si te apetece, y como simple experimento, podemos cambiar el límite del tamaño máximo de transferencia poniendo: upload_max_filesize=500K un valor más reducido, que nos servirá para hacer una prueba muy sencilla. Es imprescindible que file_uploads=On (tal como aparece en la imagen) y resulta Transferencia de ficheros muy útil también conocer el valor de upload_max_filesize que por defecto –tal como ves en la imagen– es de 2Mb. La primera directiva nos dice que PHP sí permite subir La transferencia de un fichero ficheros al servidor y la segunda nos indica el tamaño máximo (en Mbytes) de los requiere dos documentos: un ficheros que pueden ser objeto de esa transferencia. formulario que la inicie y un script que la recoja. Formulario para transferencia de archivos El formulario Observa que en el formulario hemos insertado una variable oculta (hidden) con el fin de limitar el tamaño máximo e impedir la transferencia de ficheros que excedan ese Se diferencia del que hemos visto en páginas anteriores en tres tamaño. aspectos. Dos de ellos se refieren a cambios dentro de la etiqueta <HTML> <form> y el tercero es un nuevo <BODY> tipo de input del que aún no <FORM ENCTYPE="multipart/form-data" ACTION="ejemplo86.php" hemos hablado. METHOD="post"> En la etiqueta <form> hemos de # con este input "oculto" establecemos el limite máximo incluir –obligatoriamente– el # del tamaño del fichero a transferir. En este ejemplo 1.000.000 bytes method='POST' y ENCTYPE = <INPUT type="hidden" name="lim_tamano" value="1000000"> "multipart/form-data" ya que <p><b>Archivo a transferir<b><br> no soporta ni otro método ni otra <INPUT type="file" name="archivo"></p> forma de encriptación. <p><INPUT type="submit" name="enviar" value="Aceptar"></p> </FORM> El cuerpo del formulario ha de </BODY> contener un nuevo tipo de input que utiliza la siguiente sintaxis: </HTML> <input type='file' name='nm'> ejemplo85.php La tranferencia Puedes utilizar el script invocado por la action de formulario anterior (es este que Una vez enviado el formulario, el tienes aquí debajo) para hacer algunas comprobaciones. fichero transferido se guarda en un directorio temporal del servidor – Envía un fichero cualquiera –de menos de 500K– y verás que el error es 0. Repite el salvo que php.ini especifique una envío, ahora con un fichero que sobrepase ese tamaño, y comprobarás que el error toma cosa distinta– con un nombre que le es asignado de forma valor 1 dado que la directiva upload_max_filesize=500K del fichero php.ini habrá automática, y, además, en las bloqueado la transferencia. variables predefinidas $_FILES (si la versión admite superglobales) y <? en $HTTP_POST_FILES se /* Mediante el bucle foreach leemos el array $_FILES. recogerán datos relativos al Observa la sintaxis. Escribimos como nombre del array contenido del fichero y a los $_['archivo'] con lo cual foreach leerá los elementos resultados de la transferencia. del array que tienen 'archivo" como primer indice El formato de $_FILES y de (coincide con el name que hemos puesto $HTTP_POST_FILES es el de en la etiqueta input=file del formulario) */ array bidimensional. foreach ($_FILES['archivo'] as $indice=>$valor){ El primero de sus índices es el print $indice."--->".$valor."<br>"; nombre de variable usado para la transferencia (el especificado como name='nm' en el input type='file'). } /*Dependiendo del navegador que estés utilizando puede ocurrir Los segundos índices –se trata de que varían los valores del índice type sean distintos. un array asociativo– son estos: Cuando se trata de un fichero jpg, con IE devolverá image/pjpeg, name, type, tmp_name, error y mientras que con Mozilla, Firefox, Opera y Netscape size. devolverá image/jpeg.*/ En ellos se recogen: el nombre /* repetimos el proceso anterior ahora usando la otra original de fichero transferido, su formato, el nombre con el que ha variable predefinida (recuerda que esta no es superglobal) sido guardado en el directorio $HTTP_POST_FILES y podremos visualizar los indices temporal, el tipo de error de y los valores del fichero transferido */ transferencia y el tamaño del archivo. foreach ($HTTP_POST_FILES['archivo'] as $indice=>$valor){ print $indice."--->".$valor."<br>"; El error puede ser CERO o UNO. Si } es CERO indica que la ?>
  • 2. transferencia se ha realizado con éxito. En caso contrario, el valor de ese error es UNO. Cuando está habilitada la opción de transferencias de ficheros es conveniente –en previsión de sorpresas desagradables– tomar algunas cautelas. Una de ellas sería limitar la posibilidad de transferencia a determinados tipos de archivos –imágenes, por ejemplo– Copia del fichero impidiendo con ello que pudieran transferirse al servidor ficheros de riesgo, tales como: ejecutables, virus, etcétera. Tal como hemos visto, el fichero transferido aún no está en el Cuando se establece este tipo de limitaciones, PHP comprueba los contenidos de los servidor. Por el momento se ficheros sin tomar en consideración la extensión de los mismos. Con ello se evita el riesgo encuentra en un directorio de que puedan esconderse –cambiando la extensión– ficheros distintos de los permitidos. temporal y será preciso hacer una copia en nuestro espacio de Aquí tienes un ejemplo de script que impide la transferencia de ficheros con extensión servidor. Para este proceso puede distinta a .jpg o .gif. utilizarse una función que ya hemos visto en páginas anteriores: <? copy(fich1, fich2) /* filtramos el tipo de archivos recibidos donde fich1 sería el fichero de forma que solo se permitan imagenes en formato temporal y fich2 el del nuevo jpg ó gif. Si el fichero transferido tuviera formato fichero. distinto, la función exit() acabaría la ejecución del script */ El primero de los nombres es el if(!($_FILES['archivo']['type']=="image/pjpeg" OR valor contenido en: $_FILES['archivo']['type']=="image/jpeg" OR $_FILES['archivo']['type']=="image/gif")){ $_FILES['nm']['tmp_name'] print "El formato ".$FILES['archivo']['type']. donde nm es el valor incluido " no está permitido"; como name en el formulario usado exit(); para la transferencia y tmp_name }else{ es una palabra reservada que debe # anidamos este segundo condicional escribirse exactamente con esa # para guardar en una variable sintaxis. # la extensión real del fichero # mas adelante la utilizaremos Si la versión de PHP fuera anterior a 4.1.0 habría que utilizar if ($_FILES['archivo']['type']=="image/pjpeg" OR $HTTP_POST_FILES en vez de $_FILES['archivo']['type']=="image/jpeg" ){ $_FILES. En otros casos podrían $extension=".jpg"; usarse indistintamente ambos }else{ tipos de variable. $extension=".gif"; } El valor fich2 podría ser un nombre } cualquiera asignado en el propio /* filtremos ahora el tamaño de modo que no supere script –podemos verlo en el el máximo establecido en el hidden del formulario ejemplo– o el nombre original del fichero transferido. En este caso (logicamente ese valor no puede superar el valor máximo habría que recogerlo del elemento de la configuración de php, pero si puede ser menor) del array anterior cuyo segundo y también evitaremos archivos sin contenido, índice es name. es decir con tamaño CERO */ if($_FILES['archivo']['size']>$_POST['lim_tamano'] En la cadena fich2 podría incluirse OR $_FILES['archivo']['size']==0){ –recuerda que debes ponerlo entre print "El tamaño ".$FILES['archivo']['size']." excede el límite"; comillas– un path señalando el exit(); directorio o subdirectorio donde } queremos que guarde la copia. De no incluirlo, el fichero se copiaría en el directorio desde el que se # asignemos un nombre a la imagen transferida está ejecutando el script. # de modo que se guarde en el servidor # con un nombre distinto, asignado por nosotros Sintaxis alternativa # con ello, podemos evitar duplicidades de nombres # ya que si existiera un fichero con el mismo nombre La opción anterior tiene una # que el enviado por el cliente, se sobreescribiría alternativa, igual de eficiente y mucho más segura. Se trata de: $nuevo_nombre="foto_abuelita"; move_uploaded_file(fich1, fich2) # añadámosle la extensión real de fichero que teníamos # recogida en la variable nuevo_nombre que tiene la misma utilidad que copy y añade algunas ventajas $nuevo_nombre .=$extension; tales como: # aceptemos la transferencia siempre que el archivo tenga nombre – Comprobar que el fichero ha sido if ($_FILES['archivo']['tmp_name'] != "none" ){ transferido mediante el método /* con la función copy POST e impedir que se copie en el pasaremos el archivo que está en el directorio temporal servidor en caso de no cumplirse al subdirectorio que contiene el script que estamos esa condición. ejecutando. Podríamos incluir un path y copiarlo a otro directorio */ – Si la opción safe mode=on if (copy($_FILES['archivo']['tmp_name'], $nuevo_nombre)) { (configuración de php.ini en modo echo "<h2>Se ha transferido el archivo</h2>"; seguro) –por defecto está Off– comprueba, además, que la } transferencia del fichero ha sido }else{ realizada por el mismo usuario que echo "<h2>No ha podido transferirse el fichero</h2>"; hace la petición de ejecución del } script, evitando que alguien, maliciosamente, pueda mover ?> ficheros desde el directorio temporal hasta el espacio de servidor. Usando Usando «copy» «move_uploaded_file» ¡Cuidado..! Al usar esta función bajo Windows conviene indicar en el parámetro fich2 la ruta absoluta completa Ejemplo de script para el caso register_globals=ON junto con el nombre del fichero ya que –de no hacerlo así– en Aquí debajo incluimos el código del script que -de forma alternativa a los anteriores– algunas ocasiones la imagen no podría utilizarse con esta opción de configuración. será transferida al directorio desde el que se ejecuta el script. Pese a su simplicidad te sugerimos no usarlo. Los anteriores compensan con creces su mayor complejidad sintáctica con la versatilidad –funcionan con cualquier opción de register_globals = ON register global– y con la seguridad que añaden a las transacciones.
  • 3. Con esta opción habilitada (ON) <? existe una posibilidad añadida. if ($archivo != "none" AND $archivo_size != 0 En ese caso, la sintaxis podría ser AND $archivo_size<=$lim_tamano){ más simple ya que, en el script indicado en la action del formulario, se crearía una variable if (copy ($archivo, $archivo_name)) { cuyo nombre coincide con el valor echo "<h2>Se ha transferido el archivo $archivo_name</h2>"; de name en el <INPUT echo "<br>Su tamaño es: $archivo_size bytes<br>"; type="FILE"> del formulario. echo "<br>El fichero es tipo: $archivo_type <br>"; } Esta variable (supongamos que su }else{ nombre es $archivo) tiene una echo "<h2>No ha podido transferirse el fichero</h2>"; importante peculiaridad, ya que, echo "<h3>su tamaño no puede exceder de $lim_tamano bytes</h2>"; además de guardar el fichero } transferido, contiene (con el formato que tenemos a continuación) tres valores muy ?> importantes: • $archivo_name (se añade _name al nombre de la variable) y recogerá el nombre del fichero Ejercicio nº 29 transferido. Modifica el formulario que has creado en el ejercicio nº 9 añadiéndole la opción para que tus • $archivo_size que contiene el alumnos puedan enviarte –junto con los datos– una fotografía. tamaño del fichero. Modifica también el script asociado a aquel formulario de forma que puedas asignar un • $archivo_type que recoge el nombre a la fotografía, visualizarla –previamente copiada al directorio de trabajo– junto con tipo de fichero. los datos personales y guardar los datos personales y el nombre de la imagen en un fichero. Anterior Indice Siguiente