根据个人场景更改配置config\filesystems.php
//我这个是做文章图片上传,就命名 article ,学习的话可以使用默认的配置
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'article' => [
'driver' => 'local',
'root' => public_path('/article'), // public_path 就是public的路径
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
],
处理流程
//在控制器写一个上传方法
public function upload_img(Request $request)
{
if ($request->isMethod('POST')) { //判断文件是否是 POST的方式上传
$tmp = $request->file('file');
$path = '/article'; //public下的article
if ($tmp->isValid()) { //判断文件上传是否有效
$FileType = $tmp->getClientOriginalExtension(); //获取文件后缀
$FilePath = $tmp->getRealPath(); //获取文件临时存放位置
$FileName = date('Y-m-d') . uniqid() . '.' . $FileType; //定义文件名
Storage::disk('article')->put($FileName, file_get_contents($FilePath)); //存储文件
return $data = [
'status' => 0,
'path' => $path . '/' . $FileName //文件路径
];
}
}
}
执行完 后会在 public\article看见上传的图片