Dynamic image insert in laravel
Dynamic image insert in laravel
Dynamic image insert in laravel
public/
├── vendors/
│ └── 2026/01/24/
│ └── my-vendor-photo-1706081234.webp
├── leads/
├── users/
└── projects/
use this code in helper
use Illuminate\Support\Str;
use Illuminate\Http\UploadedFile;
function saveProjectImages($files, string $baseFolder)
{
// 👇 single file को array बना दो
if ($files instanceof UploadedFile) {
$files = [$files];
}
$paths = [];
$year = date('Y');
$month = date('m');
$day = date('d');
$folderPath = public_path("$baseFolder/$year/$month/$day");
if (!file_exists($folderPath)) {
mkdir($folderPath, 0755, true);
}
foreach ($files as $file) {
$originalName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
$slugName = Str::slug($originalName);
$extension = $file->getClientOriginalExtension();
$timestamp = time();
$baseFileName = $slugName . '-' . $timestamp;
$maxBaseLength = 100 - (strlen($extension) + 1);
$baseFileName = substr($baseFileName, 0, $maxBaseLength);
$finalFileName = $baseFileName . '.' . $extension;
$file->move($folderPath, $finalFileName);
$paths[] = "$baseFolder/$year/$month/$day/$finalFileName";
}
return $paths;
}
use Illuminate\Http\UploadedFile;
function saveProjectImages($files, string $baseFolder)
{
// 👇 single file को array बना दो
if ($files instanceof UploadedFile) {
$files = [$files];
}
$paths = [];
$year = date('Y');
$month = date('m');
$day = date('d');
$folderPath = public_path("$baseFolder/$year/$month/$day");
if (!file_exists($folderPath)) {
mkdir($folderPath, 0755, true);
}
foreach ($files as $file) {
$originalName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
$slugName = Str::slug($originalName);
$extension = $file->getClientOriginalExtension();
$timestamp = time();
$baseFileName = $slugName . '-' . $timestamp;
$maxBaseLength = 100 - (strlen($extension) + 1);
$baseFileName = substr($baseFileName, 0, $maxBaseLength);
$finalFileName = $baseFileName . '.' . $extension;
$file->move($folderPath, $finalFileName);
$paths[] = "$baseFolder/$year/$month/$day/$finalFileName";
}
return $paths;
}
use this in controller
if ($request->hasFile('image')) {
$imagePaths = saveProjectImages(
is_array($request->file('image'))
? $request->file('image')
: [$request->file('image')],
'vendors'
);
}