laravel笔记-Laravel文件系统

Laravel文件系统

·laravel的文件系统是基于Frank de Jonge的Flysystem扩展包
·该文件系统 提供了简单的接口 可以操作本地端空间 AmazonS3(亚马逊空间) Rackspace Cloud Storage
·可以非常简单的切换不同的保存方式 但是仍使用相同的API操作

文件系统的配置文件:
·config/filesystems.php

    1.//新建一个存储空间 作为上传磁盘  指定 storage/app/uploads
    'uploads' => [
        'driver' => 'local',
        'root' => storage_path('app/uploads'),
    ],
	2.选择一个控制器
		public function upload(Request $request)
			{
				if($request->isMethod('POST')){
					//            测试文件上传成功
					//            echo '
';
					//            print_r($_FILES);
					//            exit;

					$file = $request->file('source');
					// 打印查看信息
					// dd($file);
					//判断文件上传成功 处理
					if($file->isValid()){
						//取原文件名
						$originalName =  $file->getClientOriginalName();
						//取文件扩展名
						$ext = $file->getClientOriginalExtension();
						//取文件类型
						$type = $file->getClientMimeType();
						//取临时文件的绝对路径
						$realPath = $file->getRealPath();

						//给文件起名字
						$filename = date('Y-m-d-H-i-s').'-'.'.'.$ext;
						//移动文件到磁盘
						$bool = Storage::disk('uploads')->put($filename,file_get_contents($realPath));
						var_dump($bool);
					}
					exit;
				}
				return view('student.upload');
			}
	3.为这个控制器方法开启一个路由
		/routes/web.php
		Route::any('/upload', 'StudentController@upload');
		
	4.配置视图
	/resouces/view/控制器/upload.blade.php
	

	
	
	
	 public function upload(Request $request)
{
    if($request->isMethod('POST')){
        //            测试文件上传成功
        //            echo '
';
        //            print_r($_FILES);
        //            exit;

        $file = $request->file('source');
        // 打印查看信息
        // dd($file);

        //判断文件上传成功 处理
        if($file->isValid()){

            //取原文件名
            $originalName =  $file->getClientOriginalName();
            //取文件扩展名
            $ext = $file->getClientOriginalExtension();
            //取文件类型
            $type = $file->getClientMimeType();
            //取临时文件的绝对路径
            $realPath = $file->getRealPath();

            //给文件起名字
            $filename = date('Y-m-d-H-i-s').uniqid().'-'.'.'.$ext;
            //移动文件到磁盘
            $bool = Storage::disk('uploads')->put($filename,file_get_contents($realPath));
            var_dump($bool);

        }

        exit;
    }
    return view('student.upload');
}

你可能感兴趣的:(PHP,laravel)