laravel excel 上传文件保存到本地服务器功能

首先需要下载安装好.环境可以使用

本地上传

$file = $request->file('file', 0);//文件名称
    /**
判断文件格式以及各种错误
**/
    //获取文件的扩展名
    $ext = $file->getClientOriginalExtension();
    //获取文件的绝对路径
    $path = $file->getRealPath();
    $file_name = date("YmdHis") . '.' .$ext;
    //存储文件。disk里面的public。总的来说,就是调用disk模块里的public配置
    // 路径 : 默认的使用的storage 保存到/storage/app/public路径下边,可自行设置
    //上传成功返回true, 失败返回false 
   $result = Storage::disk('public')->put($file_name, file_get_contents($path));

本地上传还可以使用这种方法:(首先需要定义模型来控制数据)

$res = Excel::store(new UserExport($$data), $file_path)

读取上传上去的文件

自定义一个数据模型, 可以使用ToModel , ToCollection等等, 详情请见官网

https://laravel-excel.maatwebsite.nl/3.1/getting-started/installation.html

然后在控制器里面直接调用读取就好,

//路径要定位到文件上传到服务器的路径下边
$filePath = '../storage/app/public/' . iconv('UTF-8', 'gb2312', $file_name);
//直接读取,这就是我们需要的数组的形式
$array = Excel::toArray(new UserImport(),$filePath);

相关推荐