CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

16 February, 2021

How to Upload Multiple Images Files in Laravel with Validation ?

 Programing Coderfunda     February 16, 2021     Laravel     No comments   

 

How To Upload Multiple Files in Laravel

Handling Multiple File Upload in Laravel

Laravel Multiple Files Upload Tutorial Example From Scratch

1. Create Model 

                Model Name : PurchaseBill

2. Create Database

    Database given Field :  Name , User_id, File or Image

3. Create Controller 


 //Controller

 
public function add(Request $request)
    {
        if($request->isMethod('post'))
        {
            $data = $request->all();
            $validatedData = $request->validate
            ([
                'name' => 'required',
                'image_path.*' => 'mimes:doc,pdf,docx,zip',
                'file.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,pdf,xls,xlsx|max:2048',
            ]);          

            if(Auth::guard('admin')->user()->user_type == 'super'){
                $user_data_id = Auth::guard('admin')->user()->id;                 
            } else{
                $user_data_id = Auth::guard('admin')->user()->id;
            }

            
            $gstr_detail            = new PurchaseBill();
            $gstr_detail->name      = $data['name'];
            $gstr_detail->user_id   = $user_data_id;

            $files = $request->file('file');

            //upload multipal file one row diffrent name with seprate comma
            $i = 0;
            if($request->hasfile('file')){
                foreach ($files as $file) {
                    // $name = $file->getClientOriginalName();
                    //with $i help you save diffrent name file
                    $name = time() . $i . '.' . $file->getClientOriginalExtension();
                    //movie file in folder location
                    $file->move(public_path() . '/uploads/', $name);
                    $datavk[] = $name;
                    //save data in database with diffrent name with comma
                    $gstr_detail->file  = implode(",",$datavk);
                    $i++;
                }
            }
          //  $gstr_detail->file    = implode(",",$datavk);

            if($gstr_detail->save()){
                return redirect('/admin/purchase-bill')->with('success','Added successfully');
            } else {
                return redirect('/admin/purchase-bill')->with('errors',COMMON_ERROR);
            }
        }
        $page = 'sale_bill';
        return view('backEnd.dataManagement.purchase.form', compact('page'));
    }
 
 
Main Method : You can Upload multipal file in a row with seprate 
    Without any problem  
          
            Model Name : PurchaseBill 
 
            $gstr_detail            = new PurchaseBill();
            $gstr_detail->name      = $data['name'];
            $gstr_detail->user_id   = $user_data_id;

            $files = $request->file('file');

            //upload multipal file one row diffrent name with seprate comma
            $i = 0;
            if($request->hasfile('file')){
                foreach ($files as $file) {
                    // $name = $file->getClientOriginalName();
                    //with $i help you save diffrent name file
                    $name = time() . $i . '.' . $file->getClientOriginalExtension();
                    //movie file in folder location
                    $file->move(public_path() . '/uploads/', $name);
                    $datavk[] = $name;
                    //save data in database with diffrent name with comma
                    $gstr_detail->file  = implode(",",$datavk);
 
                    $i++;
                }
            }
          //  $gstr_detail->file    = implode(",",$datavk);

            if($gstr_detail->save()) 

 

Model File

 

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class PurchaseBill extends Model
{
    //
    protected $fillable = [
        'user_id','name','file'
    ];
}
 
 


View File

<form id="example-form" action="" class="" method="post" enctype="multipart/form-data">
    @csrf
    <div>
        <!-- <h3>Profile</h3> -->
        <section>
            <div>
                <label for="name">Purchase Bill Name </label>
                <input id="name" name="name" type="text" class="required form-control" value="">
            </div><br>
                                  

            <div class="custom-file">
                <input type="file" name="file[]" class="custom-file-input" id="images" multiple="multiple" width="10%" height="10%" accept=".jpg, .png, .gif, .jpeg,   
                .xlsx, .pdf" >
                <label class="custom-file-label" for="images">Choose image</label>
            </div> 

        </section>
        <div class="card-body">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <button type="submit"  name="submit"  class="btn btn-primary" style="float: right; margin-bottom: 20px">Upload Images</button>
        </div>
    </div>
    <div class="row">
        <div class="col-md-4">
            <div class="user-image mb-3 text-center">
                <div class="imgPreview" style="height:250px; width:250px" > </div>
            </div> 
        </div>
    </div>
    
</form>
 
 

<script>
    $(function() {
    // Multiple images preview with JavaScript
    var multiImgPreview = function(input, imgPreviewPlaceholder) {

        if (input.files) {
            var filesAmount = input.files.length;
            for (i = 0; i < filesAmount; i++) {
                var reader = new FileReader();
                reader.onload = function(event) {
                    $($.parseHTML('<img style="height:250px; width:250px; diplay:inline block; float:left;" >')).attr('src', event.target.result).appendTo(imgPreviewPlaceholder);
                }
                reader.readAsDataURL(input.files[i]);
            }
        }

    };

    $('#images').on('change', function() {
        multiImgPreview(this, 'div.imgPreview');
    });
    });    
</script>

 

 

 data base

 

 11111 111

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Calculating Mathematical Statistics in PHP Calculating Mathematical Statistics in PHPHi-Folks/statistics is a PHP package that provides functions for calculating mathematical statist… Read More
  • Using Scout APM to Monitor a Laravel ApplicationUsing Scout APM to Monitor a Laravel ApplicationScout APM is a Laravel application performance monitoring tool that ties performance anomalies directl… Read More
  • Tailwind CSS Laravel Package Tailwind CSS Laravel Packagehe Tailwind CSS Laravel package from Tony Messias wraps up the standalone CLI version … Read More
  • Complete Web Scraping toolkit for PHP Complete Web Scraping toolkit for PHPRoach PHP is a complete web scraping toolkit for PHP. Not only does it handle the crawling of web cont… Read More
  • Laravel Google Chat Alerts Laravel Google Chat Alerts is a package by Guy Warner to send a message to Google chat quickly. Inspired by Spatie's La… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Vue3 :style backgroundImage not working with require
    I'm trying to migrate a Vue 2 project to Vue 3. In Vue 2 I used v-bind style as follow: In Vue 3 this doesn't work... I tried a...
  • SQL ORDER BY Keyword
      The SQL ORDER BY Keyword The ORDER BY keyword is used to sort the result-set in ascending or descending order. The ORDER BY keyword sorts ...
  • failed to load storage framework cache laravel excel
       User the export file and controller function  ..         libxml_use_internal_errors ( true ); ..Good To Go   public function view () : ...
  • Features CodeIgniter
    Features CodeIgniter There is a great demand for the CodeIgniter framework in PHP developers because of its features and multiple advan...
  • Enabling authentication in swagger
    I created a asp.net core empty project running on .net6. I am coming across an issue when I am trying to enable authentication in swagger. S...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Simplify API Responses with Fluent Methods - 6/6/2025
  • Fathom Analytics Events for Laravel Livewire - 6/6/2025
  • Replace String Prefixes Precisely with Laravel's replaceStart Method - 5/31/2025
  • Clean Up Your Code with the whenHas Method - 6/5/2025
  • Laravel OpenRouter - 6/4/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda