Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/ficheros»

De WikiEducator
Saltar a: navegación, buscar
(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


(Comment.gif: Tiene que estar instalado php-zip )


  • Añadimos tanto providers, como alias para usarlo como Facade. En app/confifg/app.conf
  1. add to providers Madnest\Madzipper\MadzipperServiceProvider::class
  2. add to aliases 'Madzipper' => Madnest\Madzipper\Madzipper::class
https://github.com/madnest/madzipper