無涯教程: Laravel 8 - 圖像上傳介紹

我將向您解釋laravel 8圖片上傳示例的示例。我將向您展示laravel 8中的圖像上傳。此示例將幫助您laravel 8將圖像上傳到數據庫。本文詳細介紹瞭如何在laravel 8中上載和顯示圖像。在這裏,創建帶有預覽功能的laravel 8圖像上載的基本示例。

在此示例中,我們將創建兩條路由,一條用於get方法,另一條用於post方法。我們使用文件輸入創建了簡單的表單。因此,您必須簡單地選擇圖像,然後將其上傳到公用文件夾的“ images”目錄中。因此,您必須簡單地遵循以下步驟,並在laravel 8應用程序中獲取圖像上傳。

首先,我們需要使用命令獲得新的的Laravel 8版本應用程序,因爲我們正在從頭開始,所以打開終端或命令提示符並運行以下命令:第1步:安裝Laravel 8

composer create-project --prefer-dist laravel/laravel blog

步驟2:創建路由

在下一步中,我們將在web.php文件中添加新的兩條路由。一種用於生成表單的路由,另一種用於post方法的路由,讓我們簡單地按照下面列出的方式創建這兩種路由:

routes/ web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\ImageUploadController;
  
  
Route::get('image-upload', [ ImageUploadController::class, 'imageUpload' ])->name('image.upload');
Route::post('image-upload', [ ImageUploadController::class, 'imageUploadPost' ])->name('image.upload.post');

 

 

步驟3:創建控制器

第三步,我們將創建新的ImageUploadController,在這裏我們必須編寫兩個方法imageUpload()和imageUploadPost()。因此,一種方法將處理get方法,而另一種方法將用於post。因此,讓我們添加代碼。

app/Http/Controllers/ImageUploadController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class ImageUploadController extends Controller
{
     /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function imageUpload()
    {
        return view('imageUpload');
    }
    
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function imageUploadPost(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
    
        $imageName = time().'.'.$request->image->extension();  
     
        $request->image->move(public_path('images'), $imageName);
  
        /* Store $imageName name in DATABASE from HERE */
    
        return back()
            ->with('success','You have successfully upload image.')
            ->with('image',$imageName); 
    }
}

存儲文件夾中的存儲圖像

$request->image->storeAs('images', $imageName);
  
//storage/app/images/file.png?imageView2/0/q/75|watermark/2/text/bGVhcm5may5jb20=/font/Y29uc29sYXM=/fontsize/400/fill/I0YxMTQxNA==/dissolve/100/gravity/SouthEast/dx/10/dy/10

在公用文件夾中存儲圖像

$request->image->move(public_path('images'), $imageName);
  
//public/images/file.png?imageView2/0/q/75|watermark/2/text/bGVhcm5may5jb20=/font/Y29uc29sYXM=/fontsize/400/fill/I0YxMTQxNA==/dissolve/100/gravity/SouthEast/dx/10/dy/10

s3中的存儲圖像

$request->image->storeAs('images', $imageName, 's3');

步驟4:創建展示頁面

在最後一步,我們需要創建imageUpload.blade.php文件,在該文件中,我們將使用文件輸入按鈕創建表單。

resources/views/imageUpload.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>laravel 8 image upload example - ItSolutionStuff.com.com</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
    
<body>
<div class="container">
     
    <div class="panel panel-primary">
      <div class="panel-heading"><h2>laravel 8 image upload example - ItSolutionStuff.com.com</h2></div>
      <div class="panel-body">
     
        @if ($message = Session::get('success'))
        <div class="alert alert-success alert-block">
            <button type="button" class="close" data-dismiss="alert">×</button>
                <strong>{{ $message }}</strong>
        </div>
        <img src="images/{{ Session::get('image') }}">
        @endif
    
        @if (count($errors) > 0)
            <div class="alert alert-danger">
                <strong>Whoops!</strong> There were some problems with your input.
                <ul>
                    @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
        @endif
    
        <form action="{{ route('image.upload.post') }}" method="POST" enctype="multipart/form-data">
            @csrf
            <div class="row">
    
                <div class="col-md-6">
                    <input type="file" name="image" class="form-control">
                </div>
     
                <div class="col-md-6">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
     
            </div>
        </form>
    
      </div>
    </div>
</div>
</body>
  
</html>

現在,您可以運行並檢查它。

 

來源:https://www.learnfk.com/article-laravel-8-image-upload-tutorial-exampleexample

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章