Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/ficheros»
De WikiEducator
(Página creada con «{{MRM_Web| https://laravel.com/docs/8.x/filesystem }} ===Lo básico=== ;Configuración en filesystem.php ;Directorio dónde se almacenarán por defecto los ficheros '''''p...») |
|||
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 17: | Línea 17: | ||
===Realizar acciones=== | ===Realizar acciones=== | ||
;Facade Storage | ;Facade Storage | ||
+ | *La Facades (https://laravel.com/docs/8.x/facades) Son una interfaz estática (no son clases estáticas!!!!) que proporciona laravel para poder utilizar las clases que están disponebles en el contenedor de servicios de la aplicación. | ||
+ | *Es una facilidad para usar clases directamente con un nombre. | ||
+ | |||
+ | |||
+ | https://laravel.com/api/8.x/Illuminate/Contracts/Filesystem/Filesystem.html | ||
+ | https://laravel.com/api/8.x/Illuminate/Filesystem/FilesystemManager.html | ||
+ | *Accedemos al fichero descargado a través del Request | ||
+ | <source lang=php> | ||
+ | public function descargar(Request $datos){ | ||
+ | //Copio el fichero indicado en storage | ||
+ | $file = $datos->file(); | ||
+ | dd($file); | ||
+ | </source> | ||
+ | Obteniendo la siguiente información | ||
+ | <source lang=yaml> | ||
+ | array:1 [▼ | ||
+ | "file_practica" => Illuminate\Http\UploadedFile {#330 ▼ | ||
+ | -test: false | ||
+ | -originalName: "dwes_in2wv-Realiza una agenda simple-91060 (1).zip" | ||
+ | -mimeType: "application/zip" | ||
+ | -error: 0 | ||
+ | #hashName: null | ||
+ | path: "/tmp" | ||
+ | filename: "phpsqd4G4" | ||
+ | basename: "phpsqd4G4" | ||
+ | pathname: "/tmp/phpsqd4G4" | ||
+ | extension: "" | ||
+ | realPath: "/tmp/phpsqd4G4" | ||
+ | aTime: 2022-01-12 11:12:18 | ||
+ | mTime: 2022-01-12 11:12:18 | ||
+ | cTime: 2022-01-12 11:12:18 | ||
+ | inode: 17957082 | ||
+ | size: 18535 | ||
+ | perms: 0100600 | ||
+ | owner: 1000 | ||
+ | group: 1000 | ||
+ | type: "file" | ||
+ | writable: true | ||
+ | readable: true | ||
+ | executable: false | ||
+ | file: true | ||
+ | dir: false | ||
+ | link: false | ||
+ | } | ||
+ | ] | ||
+ | </source> | ||
+ | *'''''$file''''' es un objeto de la clase UploadedFile | ||
+ | https://laravel.com/api/8.x/Illuminate/Http/UploadedFile.html | ||
+ | ;Guardar el fichero en local | ||
+ | <source lang=php> | ||
+ | |||
+ | </source> | ||
+ | |||
+ | |||
+ | |||
+ | ====Zip file==== | ||
+ | *Para gestionar los ficheros zip (comprimir y descomprimir): | ||
+ | <source lang=bash> | ||
+ | composer require madnest/madzipper | ||
+ | </source> | ||
+ | |||
+ | {{Nota| | ||
+ | Tiene que estar instalado php-zip | ||
+ | }} | ||
+ | *Añadimos tanto providers, como alias para usarlo como Facade. En '''''app/confifg/app.conf''''' | ||
+ | #add to providers ''''' Madnest\Madzipper\MadzipperServiceProvider::class''''' | ||
+ | #add to aliases ''''' 'Madzipper' => Madnest\Madzipper\Madzipper::class''''' | ||
+ | https://github.com/madnest/madzipper |
Última revisión de 04:56 13 ene 2022
Lo básico
- Configuración en filesystem.php
- Directorio dónde se almacenarán por defecto los ficheros public/storage enlace a storage/app/public. Este enlace hay que generarlo
php artisan storage:link
Dónde se almacenarán los ficheros
- Se establece en disk' en el fichero de configuración
- Local disck
- Almacenamiento local en storage/app
- Public disk
- Almacenamiento local en storage/app/public con link en public/storage
Realizar acciones
- Facade Storage
- La Facades (https://laravel.com/docs/8.x/facades) Son una interfaz estática (no son clases estáticas!!!!) que proporciona laravel para poder utilizar las clases que están disponebles en el contenedor de servicios de la aplicación.
- Es una facilidad para usar clases directamente con un nombre.
https://laravel.com/api/8.x/Illuminate/Contracts/Filesystem/Filesystem.html https://laravel.com/api/8.x/Illuminate/Filesystem/FilesystemManager.html
- Accedemos al fichero descargado a través del Request
public function descargar(Request $datos){ //Copio el fichero indicado en storage $file = $datos->file(); dd($file);
Obteniendo la siguiente información
array:1 [▼ "file_practica" => Illuminate\Http\UploadedFile {#330 ▼ -test: false -originalName: "dwes_in2wv-Realiza una agenda simple-91060 (1).zip" -mimeType: "application/zip" -error: 0 #hashName: null path: "/tmp" filename: "phpsqd4G4" basename: "phpsqd4G4" pathname: "/tmp/phpsqd4G4" extension: "" realPath: "/tmp/phpsqd4G4" aTime: 2022-01-12 11:12:18 mTime: 2022-01-12 11:12:18 cTime: 2022-01-12 11:12:18 inode: 17957082 size: 18535 perms: 0100600 owner: 1000 group: 1000 type: "file" writable: true readable: true executable: false file: true dir: false link: false } ]
- $file es un objeto de la clase UploadedFile
https://laravel.com/api/8.x/Illuminate/Http/UploadedFile.html
- Guardar el fichero en local
Zip file
- Para gestionar los ficheros zip (comprimir y descomprimir):
composer require madnest/madzipper
(:
Tiene que estar instalado php-zip
)
- Añadimos tanto providers, como alias para usarlo como Facade. En app/confifg/app.conf
- add to providers Madnest\Madzipper\MadzipperServiceProvider::class
- add to aliases 'Madzipper' => Madnest\Madzipper\Madzipper::class
https://github.com/madnest/madzipper