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 '<pre>';
// 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 '<pre>';
// 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');
}