PHP code example of guiszytko / laravel-file-manager

1. Go to this page and download the library: Download guiszytko/laravel-file-manager library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

guiszytko / laravel-file-manager example snippets




namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Guiszytko\LaravelFileManager\Traits\FileUploadTrait;

class Post extends Model
{
    use FileUploadTrait;

    protected $fillable = ['title', 'content'];

    // O método files() será automaticamente adicionado pela trait
}



namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;

class PostController extends Controller
{
    public function store(Request $request)
    {
        // Validação dos dados
        $request->validate([
            'title' => '    if ($request->hasFile('file')) {
            $post->uploadFile([
                'file' => $request->file('file'),
                'generate_thumbnail' => true, // Gera uma miniatura automaticamente
                'folder_path' => 'posts/files', // Define uma pasta específica
                'use_date_folders' => true, // Organiza por data
            ]);
        }

        return redirect()->route('posts.index')->with('success', 'Post criado com sucesso!');
    }
}

public function destroyFile(Request $request, Post $post, $fileId)
{
    try {
        // Deletar o arquivo usando o método deleteFile da trait
        $post->deleteFile($fileId);

        return back()->with('success', 'Arquivo deletado com sucesso!');
    } catch (\Exception $e) {
        return back()->withErrors('Erro ao deletar o arquivo: ' . $e->getMessage());
    }
}
bash
php artisan vendor:publish --provider="Guiszytko\LaravelFileManager\Providers\FileManagerServiceProvider" 
bash
php artisan migrate
blade
@extends('layouts.app')

@section('content')
    <h1>{{ $post->title }}</h1>
    <p>{{ $post->content }}</p>

    @if($post->files->count())
        @foreach($post->files as $file)
            <div class="mb-2">
                <p><strong>{{ $file->original_name }}</strong></p>
                @if($file->thumbnail_url)
                    <img src="{{ $file->thumbnail_url }}" alt="Miniatura" class="img-thumbnail">
                @endif
                <img src="{{ $file->url }}" alt="Imagem Original" class="img-fluid">
            </div>
        @endforeach
    @endif

    <a href="{{ route('posts.index') }}" class="btn btn-secondary">Voltar</a>
@endsection
blade
@foreach($post->files as $file)
    <div class="mb-2">
        <p><strong>{{ $file->original_name }}</strong></p>
        @if($file->thumbnail_url)
            <img src="{{ $file->thumbnail_url }}" alt="Miniatura" class="img-thumbnail">
        @endif
        <img src="{{ $file->url }}" alt="Imagem Original" class="img-fluid">

        <form action="{{ route('posts.files.destroy', [$post, $file->id]) }}" method="POST"
              onsubmit="return confirm('Tem certeza que deseja deletar este arquivo?');">
            @csrf
            @method('DELETE')
            <button type="submit" class="btn btn-danger">Deletar Arquivo</button>
        </form>
    </div>
@endforeach
bash
php artisan vendor:publish --provider="Guiszytko\LaravelFileManager\Providers\FileManagerServiceProvider"