1. Go to this page and download the library: Download bekwoh/laravel-media-secure 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/ */
bekwoh / laravel-media-secure example snippets
use Spatie\MediaLibrary\MediaCollections\Models\Media;
// Get view URL: /media/view/{uuid}
$viewUrl = get_view_media_url($media);
// Get download URL: /media/download/{uuid}
$downloadUrl = get_download_media_url($media);
// Get stream URL: /media/stream/{uuid}
$streamUrl = get_stream_media_url($media);
// Generate signed URL (default expiration from config)
$signedUrl = get_signed_view_url($media);
// Generate signed URL with custom expiration (in minutes)
$signedUrl = get_signed_download_url($media, 30); // Expires in 30 minutes
// Generate signed URL with DateTime expiration
$signedUrl = get_signed_stream_url($media, now()->addHours(24));
// Using the Facade
use CleaniqueCoders\LaravelMediaSecure\Facades\LaravelMediaSecure;
$url = LaravelMediaSecure::signedViewUrl($media);
$url = LaravelMediaSecure::signedDownloadUrl($media, 60);
namespace App\Policies;
use App\Models\Document;
use App\Models\User;
class DocumentPolicy
{
public function view(User $user, Document $document): bool
{
return $user->id === $document->user_id;
}
public function stream(User $user, Document $document): bool
{
return $user->id === $document->user_id;
}
public function download(User $user, Document $document): bool
{
return $user->id === $document->user_id;
}
}