Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel 5.2中单击锚链下载XLSX文件_Php_Laravel_Laravel 5.2_Laravel Excel - Fatal编程技术网

Php 在Laravel 5.2中单击锚链下载XLSX文件

Php 在Laravel 5.2中单击锚链下载XLSX文件,php,laravel,laravel-5.2,laravel-excel,Php,Laravel,Laravel 5.2,Laravel Excel,我正在尝试使用Laravel Excel导出数据。我已经集成了Laravel excel,但是在下载按钮点击时发现了一个问题,而不是自动下载 以下是我的观点: <a href="{{Export::exportXLSX('users', $users)}}" class="btn btn-default btn-sm"> <i class="fa fa-file-excel-o"></i>

我正在尝试使用Laravel Excel导出数据。我已经集成了Laravel excel,但是在下载按钮点击时发现了一个问题,而不是自动下载

以下是我的观点:

<a href="{{Export::exportXLSX('users', $users)}}" class="btn btn-default btn-sm">
                                    <i class="fa fa-file-excel-o"></i> Export Users </a> 

// here $users is the array return from tbl_users through UsersController
我不想将文件存储到任何本地存储。我只想在点击链接时下载文件,而不是自动下载。有时,我的数据会根据数据库中的表名不断更改

我有什么办法可以做到这一点

谢谢大家!

根据Laravel Excel:

要下载创建的文件,请使用->导出($ext)或->下载($ext)

除非您想开始下载过程,否则您不需要使用
->export
->download
方法

首先,您需要将其存储在服务器上:

要在服务器上存储创建的文件,请使用->存储($ext、$path=false、$returnInfo=false)或->保存()

如果要返回存储信息,请将第三个参数设置为 true或更改export.php内的配置设置

以下是一个例子:

class Export
{
    public static function exportXLSX($filename, $data){
        $filename = $filename.'-'.Carbon::now();
        $storage_info = Excel::create($filename, function($excel) use($data) {
            $excel->sheet('Sheetname', function($sheet) use($data) {
                $sheet->fromArray($data);
            });
        })->store('xls', false, true);

        // Work with $storage_info->full parameter
        // ...
    }
}
如果要使用自定义存储路径(例如,为每个客户端分隔文件),可以将文件夹设置为第二个参数

->store('xls', storage_path('excel/exports'));

我想你是对的。我找到了另一个解决办法。我为此创建了一条路线。你不需要路线来实现这一点。下载文件后尝试使用
。它会被自动删除吗?好的,你的回答对我帮助很大:)没问题。您可以使用cron或Laravel的任务计划删除XLS文件:。或者使用Laravel事件系统。
->store('xls', storage_path('excel/exports'));