首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >laravel8.x 单多文件上传接口开发

laravel8.x 单多文件上传接口开发

作者头像
贵哥的编程之路
发布2023-10-16 16:12:35
发布2023-10-16 16:12:35
4960
举报

第一步:在public目录下新建uploads目录

第二步:routes/web.php下复制粘贴

代码语言:javascript
复制
<?php

use Illuminate\Support\Facades\Route;

use Illuminate\Support\Facades\View;
use App\Http\Controllers\UserController;//路由文件里面引入控制器,不然无法实现哦
/*
|--------------------------------------------------------------------------
| 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::post('upload',[UserController::class,'upload']);
//控制器user。方法upload可以在浏览器上面写upload就行
Route::post('uploads',[UserController::class,'uploads']);
控制器user。方法uploads可以在浏览器上面写uploads就行

第三步:

config/filesystems.php/disks下(复制粘贴)uploads是要存的目录

代码语言:javascript
复制
'uploads'=>[
             'driver'=>'local',
             'root'=>public_path('uploads/'),
        ],

第四步:

app/Http/Middleware/VerifyCsrfToken.php

代码语言:javascript
复制
<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array<int, string>
     */
    protected $except = [
        //
        "http://admin.tp5.com/index.php/uploads",//写这两个链接在这里csrf就不拦截
        "http://admin.tp5.com/index.php/upload",
    ];
}

UserController.php

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;
use Illuminate\Support\Facades\View;
use Illuminate\Http\Request;
use App\Models\User\Teacher;
use Illuminate\Support\Facades\DB;
use Captcha;
use Illuminate\Support\Arr;
use Cache;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Storage;
class UserController extends Controller
{
    //单文件上传
    public function Upload(Request $request)
    {
if ($request->isMethod('post')) {

            $file = $request->file('file');//接收到文件

            if($file->isValid()){//检测上传的文件是否合法,返回值为 true 或 false

                $path = Storage::disk('uploads')->putFile(date('Ymd') , $file);
                //保存路径:public/uploads/时间目录下

                if($path) {

                    return ['code' => 0 , 'msg' => '上传成功' , 'data' => $path];//输出

                }

                else {

                    return ['code' => 400 , 'msg' => '上传失败'];

                }

            }

        } else {

            return ['code' => 400, 'msg' => '非法请求'];

        }
    }
public function Uploads(Request $request)
{
     $path=[];
if ($request->isMethod('post')) {//检测是不是post方法上传的


            $files = $request->file('files');//获取到上传很多文件

            if(is_array($files)){//看是不是数组形式的

                foreach($files as $file){//遍历数组。保存进public/uploads/时间目录下
                    $path = Storage::disk('uploads')->putFile(date('Ymd') , $file);

                }

                if( $path ) {

                    return ['code' => 0 , 'msg' => '上传成功' , 'data' => $path];

                }

                else {

                    return ['code' => 400 , 'msg' => '上传失败'];

                }

            }

        }else{

            return ['code' => 400, 'msg' => '非法请求'];

        }

}


}

多文件上传:测试

单文件上传测试:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步:在public目录下新建uploads目录
  • 第二步:routes/web.php下复制粘贴
  • 第三步:
  • 第四步:
  • UserController.php
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档