La clase UploadedFile
Mediante objetos de tipo UploadedFile representaremos los
ficheros subidos desde formulario.
Como UploadedFile hereda de File,
podremos hacer con un fichero subido cualquier operación que se pueda hacer
con otros ficheros. Consultad también los ejemplos de
la clase File para ver las operaciones
disponibles (comprobar tipos, mover, copiar, borrar...).
Índice
- Constructor de
File. - Obtener un UploadedFile a partir del objeto Request.
- Comprobar si llega el fichero.
- Guardar con store().
- Guardar con storeAs().
Usando el constructor
Se puede crear un objeto UplaodedFile usando el constructor,
a partir de la clave del array $_FILES, el tamaño máximo
que queremos permitir (opcional) y una lista de tipos MIME aceptados (opcional).
Sin embargo, esta no va a ser la forma habitual de crear el objeto, puesto
que lo normal será hacerlo a partir de la Request, como se
muestra en el siguiente ejemplo.
Parámetros
- string
$key: clave de $_FILES (atributo name del input). - int
$maxSize: tamaño máximo en bytes (opcional, por defecto 0 que significa sin límite). - array
$mimes: listado de tipos MIME aceptados (opcional).
Ejemplo
Recuperando el fichero a partir de la Request
Lo más normal es recuperar el fichero a partir del objeto
Request. Para ello, usaremos el método Request::file()
de la siguiente forma:
Ejemplo
Podéis consultar más detalles del método Request::file() en
la documentación sobre la clase Request.
Comprobando si un fichero llega
Podemos comprobar si un fichero llega o no mediante el método
check().
Parámetros
- string
$key: clave de $_FILES (atributo name del input).
Valor de retorno
- boolean: true si llega el fichero o false si no.
Ejemplo
También podemos saber si el fichero llega o no mirando lo que retorna el método
file(), puesto que retorna NULL si no existe la entrada en el array $_FILES.
Moviendo el fichero con store()
Tenemos varias formas de colocar el fichero en su ubicación definitiva,
una de ellas es usar el método store(). Este método
guardará el fichero en la ruta indicada o en la carpeta por defecto (storage)
si no se indica.
La carpeta por defecto se puede cambiar en el fichero de configuración config.php.
Parámetros
- string
$folder: carpeta de destino (opcional, storage por defecto). - string
$prefix: prefijo del nombre de fichero generado (opcional). - bool
$returnFullRoute: true retorna la ruta completa del fichero en el servidor, false retorna solamente el nombre del fichero con su extensión (opcional, por defecto false).
Valor de retorno
- string: la ruta completa o el nombre final del fichero guardado.
Excepciones
- UploadException: en caso de que no pueda mover el fichero a su ubicación definitiva.
Ejemplo
Moviendo el fichero con storeAs()
Otra forma es usar el método storeAs(), que funciona de forma
similar al método store(), pero que permite indicar el nombre
del fichero en vez de generarlo de forma única.
Parámetros
- string
$folder: carpeta de destino (opcional, storage por defecto). - string
$name: nombre del fichero (opcional, por defecto el nombre original). - bool
$returnFullRoute: true retorna la ruta completa del fichero en el servidor, false retorna solamente el nombre del fichero con su extensión (opcional, por defecto false).
Valor de retorno
- string: la ruta completa o el nombre final del fichero guardado.
Excepciones
- UploadException: en caso de que no pueda mover el fichero a su ubicación definitiva.