Laravel 8 - 文件上传

Laravel 8 - 文件上传 首页 / Laravel8入门教程 / Laravel 8 - 文件上传

在此示例中,无涯教程将创建两条路由,一条用于get方法,另一条用于post方法。使用文件输入创建了简单的表单。因此,您必须简单地选择文件,然后将其上传到公用文件夹的“uploads"目录中。因此,您必须简单地遵循以下步骤,并在laravel 8应用程序中获取文件上传。

第1步:安装Laravel 8

首先,需要使用下面命令获得新的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\FileUploadController;

/*

|--------------------------------------------------------------------------

| Web Routes

|--------------------------------------------------------------------------

|

| Here is where you can register web routes for your application. These

| routes are loaded by the RouteServiceProvider within a group which

| contains the "web" middleware group. Now create something great!

|

*/

Route::get('file-upload' [FileUploadController::class 'fileUpload'])->name('file.upload');

Route::post('file-upload' [FileUploadController::class 'fileUploadPost'])->name('file.upload.post');

步骤3:创建控制器

第三步,将创建新的FileUploadController,在这里必须编写两个方法fileUpload()和fileUploadPost()。因此,一种方法将处理get方法,而另一种方法将用于post。因此,一起来添加以下代码。

无涯教程网

app/Http/Controllers/FileUploadController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FileUploadController extends Controller

{

/**

* Display a listing of the resource.

*

* @return \Illuminate\Http\Response

*/

public function fileUpload()

{

return view('fileUpload');

}

/**

* Display a listing of the resource.

*

* @return \Illuminate\Http\Response

*/

public function fileUploadPost(Request $request)

{

$request->validate([

'file' => 'required|mimes:pdf,xlx,csv|max:2048'

]);

$fileName = time().'.'.$request->file->extension();

$request->file->move(public_path('uploads'), $fileName);

return back()

->with('success''You have successfully upload file.')

->with('file'$fileName);

}

}

步骤3:创建视图

在最后一步,需要创建fileUpload.blade.php文件,在该文件中,将使用文件输入按钮创建表单。因此,将波纹管复制并放在该文件上。

resources/views/fileUpload.blade.php

<!DOCTYPE html>

<html>

<head>

<title>laravel 8 file upload example - learnfk.com</title>

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">

</head>

<body>

<div class="container">

<div class="panel panel-primary">

<div class="panel-heading"><h2>laravel 8 file upload example - learnfk.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>

@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('file.upload.post') }}" method="POST" enctype="multipart/form-data">

@csrf

<div class="row">

<div class="col-md-6">

<input type="file" name="file" 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>

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术管理实战36讲 -〔刘建国〕

小马哥讲Spring核心编程思想 -〔小马哥〕

.NET Core开发实战 -〔肖伟宇〕

微信小程序全栈开发实战 -〔李艺〕

WebAssembly入门课 -〔于航〕

反爬虫兵法演绎20讲 -〔DS Hunter〕

高并发系统实战课 -〔徐长龙〕

Python实战 · 从0到1搭建直播视频平台 -〔Barry〕

结构沟通力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)