1. Go to this page and download the library: Download devwizardhq/laravel-filex 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/ */
devwizardhq / laravel-filex example snippets
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DevWizard\Filex\Traits\HasFilex;
class DocumentController extends Controller
{
use HasFilex;
public function store(Request $request)
{
// Validate the request with trait helper
$request->validate([
'title' => 'create([
'title' => $request->title,
'user_id' => auth()->id(),
'file_paths' => $filePaths,
]);
return redirect()->back()->with('success', 'Documents uploaded successfully!');
}
public function updateAvatar(Request $request, User $user)
{
// Validate single file upload
$request->validate([
...$this->getFileValidationRules('avatar', true),
]);
// Upload single file
$avatarPath = $this->moveFile($request, 'avatar', 'avatars');
$user->update(['avatar' => $avatarPath]);
return redirect()->back()->with('success', 'Avatar updated successfully!');
}
}
namespace App\Http\Controllers;
use DevWizard\Filex\Services\FilexService;
use Illuminate\Http\Request;
class UploadController extends Controller
{
public function __construct(
private FilexService $filexService
) {}
public function store(Request $request)
{
$tempPaths = $request->input('file_paths', []);
// Move files to permanent storage
$results = $this->filexService->moveFiles(
$tempPaths,
'uploads/documents',
'public'
);
// Extract successful file paths
$successfulPaths = $results->getSuccessfulPaths();
$failedPaths = $results->getFailedPaths();
// Handle the results...
}
}
use DevWizard\Filex\Facades\Filex;
// Move files with default visibility
$result = Filex::moveFiles($tempPaths, 'uploads', 'public');
// Move files with specific visibility
$result = Filex::moveFiles($tempPaths, 'uploads', 'public', 'private');
// Move files with convenience methods
$result = Filex::moveFilesPublic($tempPaths, 'uploads/public');
$result = Filex::moveFilesPrivate($tempPaths, 'uploads/private');
// Move single file with visibility control
$result = Filex::moveFilePrivate($tempPath, 'uploads/documents');
// Generate unique filename
$uniqueName = Filex::generateFileName('document.pdf');
// Validate temporary file
$validation = Filex::validateTemp($tempPath, $originalName);
// Clean up expired files
$cleaned = Filex::cleanup();
use DevWizard\Filex\Traits\HasFilex;
class DocumentController extends Controller
{
use HasFilex;
public function storeDocument(Request $request)
{
// Validate file upload
$request->validate([
'document' => ['ocuments', null, $visibility);
// Or use convenience methods
if ($request->boolean('is_private')) {
$documentPath = $this->moveFilePrivate($request, 'document', 'documents');
} else {
$documentPath = $this->moveFilePublic($request, 'document', 'documents');
}
// Save to database
$document = Document::create([
'name' => $request->input('name'),
'file_path' => $documentPath,
'is_private' => $request->boolean('is_private'),
]);
return redirect()->back()->with('success', 'Document uploaded successfully!');
}
public function storeMultipleDocuments(Request $request)
{
// Validate multiple file uploads
$request->validate([
'documents' => ['
use DevWizard\Filex\Rules\ValidFileUpload;
use DevWizard\Filex\Support\FilexRule;
// In your form request or controller
$request->validate([
'documents' => [' 10 * 1024 * 1024)
]
]);
// Or using the FilexRule helper
$request->validate([
'images' => ['0')
]
]);
use DevWizard\Filex\Facades\FileRule;
// Predefined rules for common file types
$request->validate([
'photos' => ['
'documents.*' => ['
// In your controller
use DevWizard\Filex\Traits\HasFilex;
class DocumentController extends Controller
{
use HasFilex;
public function bulkUpdate(Request $request)
{
$tempPaths = $request->input('documents', []);
// Simple bulk upload
$documentPaths = $this->moveFiles($request, 'documents', 'documents/bulk-upload');
return response()->json([
'success' => true,
'uploaded' => count($documentPaths),
'files' => $documentPaths
]);
}
}
// Switch language dynamically
App::setLocale('bn');
// In Blade templates
<x-filex-uploader name="files" />
{{-- Messages will automatically use the current locale --}}