2. Subida de ficheros al servidor
• Para subir un fichero al servidor se utiliza el
elemento de entrada FILE
• Hay que tener en cuenta una serie de
consideraciones importantes:
o El elemento FORM debe tener el atributo
ENCTYPE="multipart/form-data“
o El fichero tiene un límite en cuanto a su
tamaño. Este límite se fija de dos formas
diferentes:
• En el fichero de configuración php.ini
• En el propio formulario
3. Manejo de Archivos
<INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="102400">
<INPUT TYPE="FILE" SIZE="44" NAME="imagen">
• La variable $_FILES contiene toda la información del fichero
subido:
o $_FILES['imagen']['name']
• Nombre original del fichero en la máquina cliente
o $_FILES['imagen']['type']
• Tipo mime del fichero. Por ejemplo, "image/gif"
o $_FILES['imagen']['size']
• Tamaño en bytes del fichero subido
o $_FILES['imagen']['tmp_name']
• Nombre del fichero temporal en el que se
almacena el fichero subido en el servidor
o $_FILES['imagen’]['error']
• Código de error asociado al fichero subido
4. Manejo de Archivos
if (is_uploaded_file
($_FILES['imagen']['tmp_name']))
{
$nombreDirectorio = "img/";
$nombreFichero = $_FILES['imagen']['name'];
move_uploaded_file
($_FILES['imagen']['tmp_name'],
$nombreDirectorio . $nombreFichero);
}
else
print ("No se ha podido subir el ficheron");
5. Manejo de Archivos
PHP y el sistema de archivos
Abrir archivos.
$resource = fopen(ruta_archivo, modo);
$archivo = fopen(‘datos.txt’, ‘r’);
Cuando no puede abrir el archivo devolverá false
6. Manejo de Archivos
PHP y el sistema de archivos
Cerrar archivos.
boolean fclose($resource);
fclose($archivo);
Cuando no puede cerrar el archivo devolverá false
7. Manejo de Archivos
PHP y el sistema de archivos
Modos de apertura
r Abrir sólo para lectura.
r+ Abrir para lectura y escritura.
w Abrir sólo para escritura y truncar el archivo en longitud cero. Si el archivo
no existe, intente crearlo.
w+ Abrir para lectura y escritura y truncar el archivo a longitud cero. Si el
archivo no existe, intenta crearlo.
a Abrir sólo para anexar. Si el archivo no existe intenta crearlo.
a+ Abrir para lectura y escritura, comenzando al final del archivo. Si el
archivo no existe intenta crearlo.
x Crear y abrir sólo para escritura. Si el archivo ya existe, fopen devolverá
falso.
x+ Crear y abrir para lectura y escritura. Si el archivo ya existe, fopen
devolverá falso.
8. Manejo de Archivos
PHP y el sistema de archivos
Lectura de archivos
Instrucción Descripción Devuelve
Lee una cadena de texto de un Cadena de
fgets
archivo. caracteres.
fgetc Lee un carácter de un archivo. Símbolo.
Lee el contenido completo de Cadena de
file_get_contents un archivo. caracteres.
Abre un archivo y deposita su Un vector
file contenido completo en un
vector
Lee un determinado número Bytes leídos
fread
de bytes
9. Manejo de Archivos
PHP y el sistema de archivos
Lectura de archivos – Ejemplo 1
<?php
$manejador = fopen("datos.txt", "r") or die();
while( ! feof($manejador) ){
$linea = fgets($manejador);
echo $linea;
}
fclose($manejador);
?>
10. Manejo de Archivos
PHP y el sistema de archivos
Lectura de archivos – Ejemplo 2
<?php
$manejador = fopen("datos.txt", "r") or die();
while( $simbolo = fgetc($manejador) ){
echo $simbolo;
}
fclose($manejador);
?>
11. Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo.
Función Descripción
fwrite Escribe datos a un archivo. Recibe
como parámetro un manejador de
fputs archivo.
Escribe una cadena a un archivo.
file_put_contents Escribe una cadena a un archivo.
12. Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo – Ejemplo 1
<?php
$manejador = fopen("datos.txt", "a");
fwrite($manejador, "nEsto es una prueba");
fclose($manejador);
?>
13. Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo – Ejemplo 2
<?php
$cadena = "Esto es otra prueba de escrituran";
file_put_contents("datos.txt", $cadena);
?>
En este ejemplo el contenido del archivo es reemplazado
14. Manejo de Archivos
PHP y el sistema de archivos
Escribir a un archivo – Ejemplo 2
<?php
$cadena = "Esto es otra prueba de escrituran";
file_put_contents("datos.txt", $cadena, FILE_APPEND);
?>
En este ejemplo el contenido no es reemplzado gracias
a FILE_APPEND.