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
}
声明
本人博客的所有东西,部分源于网络书籍和视频,其他的是个人的理解感悟,经过自己整理撰写成博客。
本人博客均只用于个人学习、复习,不作为商业用途,如有侵权,请联系我修改或删除。
联系邮箱:itlaowen@163.com