Laravel - 上手实现 - 文件上传、保存到 public 目录下
程序员文章站
2022-03-22 19:02:14
PHP 中上手 Laravel 框架,除了要会增删改查,也应该了解了解文件上传。 ......
1、为了访问方便,将上传的文件保存在 public 目录下,需要进行修改配置。
找到 config/filesystems.php 文件然后修改 root、具体如下:
'local' => [ 'driver' => 'local', // 'root' => storage_path('app'), 'root' => public_path() ], 'public' => [ 'driver' => 'local', // 'root' => storage_path('app/public'), 'root' => public_path(), 'url' => env('app_url').'/storage', 'visibility' => 'public', ],
2、配置路由,指定上传页面;
// 上传页面 route::get('/upl', function(){ return view('users.upload'); });
3、创建并编辑上传页面;
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>上传</title> </head> <body> <form action="upldo" method="post" enctype="multipart/form-data"> <!-- 文件上传使用 post 提交方式、需要加 csrf 保护--> @csrf 文件上传: <input type="file" name="file" id=""> <input type="submit" value="提交"> </form> </body> </html>
4、配置路由绑定控制器和方法,用于执行上传操作;
// 执行上传 route::post('/upldo', 'userscontroller@upldo');
5、在控制器接收数据,获取上传的文件信息;
/** * 文件上传 */ public function upldo( request $request ) { // 获取上传的文件 $file = $request->file('file'); // 获得上传文件的原始名称 getclientoriginalname // 040106.jpg echo $file->getclientoriginalname(); // 获取上传文件的文件扩展名 extension // jpg echo $extension = $file->extension(); // 获取上传文件的大小 // 29514 echo $file->getsize(); // 检测上传的文件是否合法,返回值为true或false // 1 echo $file->isvalid(); // 获取上传后保存的路径 // php/nktwzdr5l1zkeqkzc8yk36hpab6tsdkrvboyjlhq.jpeg echo $file->store('php'); // 最终的保存路径是在 ../laravel7/public/php/nktwzdr5l1zkeqkzc8yk36hpab6tsdkrvboyjlhq.jpeg }
上一篇: 红米K20 Pro更新:支持人脸解锁