Php 将CSV从服务器端下载到Laravel 4中的浏览器

Php 将CSV从服务器端下载到Laravel 4中的浏览器,php,csv,laravel-4,Php,Csv,Laravel 4,我使用的是Laravel 4框架,我有一个函数,可以创建一个名为data_78888.csv的csv文件。每次运行该函数生成csv文件时,78888的编号都会发生变化。该函数返回如下字符串:“Download/78888” 创建我的csv文件的文件夹称为“输出”,位于应用程序文件夹所在的我的项目文件夹中(不在公用文件夹中) 我想做的是创建一条指向我的流程控制器的路由,如下所示: Route::get('Download/{token}', array('uses' => 'ProcessC

我使用的是Laravel 4框架,我有一个函数,可以创建一个名为data_78888.csv的csv文件。每次运行该函数生成csv文件时,78888的编号都会发生变化。该函数返回如下字符串:“Download/78888”

创建我的csv文件的文件夹称为“输出”,位于应用程序文件夹所在的我的项目文件夹中(不在公用文件夹中)

我想做的是创建一条指向我的流程控制器的路由,如下所示:

Route::get('Download/{token}', array('uses' => 'ProcessController@downloadCSV')); 
<?php

class ProcessController extends BaseController {

 public function downloadCSV($token){
        $fileToDownload = "data_".$token.".csv";
        $filePath = "outputs/";
        return Response::download($filePath, $fileToDownload, array(
            'Content-Type'              => 'text/csv',
            'Content-Disposition'       => 'attachment;filename="'.$fileToDownload

        ));
    }
}
在我的控制器中,我想将该csv文件发送到浏览器以下载它,我这样做:

Route::get('Download/{token}', array('uses' => 'ProcessController@downloadCSV')); 
<?php

class ProcessController extends BaseController {

 public function downloadCSV($token){
        $fileToDownload = "data_".$token.".csv";
        $filePath = "outputs/";
        return Response::download($filePath, $fileToDownload, array(
            'Content-Type'              => 'text/csv',
            'Content-Disposition'       => 'attachment;filename="'.$fileToDownload

        ));
    }
}

文件路径必须包括文件名和文件扩展名

所以试试这个

$fileToDownload = "data_".$token.".csv";
$filePath = base_path() . "outputs/" . $fileToDownload;
return Response::download($filePath, $fileToDownload, array(
    'Content-Type'              => 'text/csv',
    'Content-Disposition'       => 'attachment;filename="'.$fileToDownload

));

下载之前,还要确保文件存在。

很抱歉,这没有解决问题,我仍然收到与您收到的htm文件相同的错误?日志中有错误吗?日志中有太多错误,我无法全部发布,但html文件从未下载过,服务器显示错误,然后查看错误。没有某种帮助,我们无法为您找出错误。尝试清除日志文件,然后再次执行请求。然后,日志文件应该有发生的错误。我查看了日志,可以修复两个EROR,其中一个是:我需要添加/in:$filePath=base\u path()。“产出/”$文件下载;使其成为$filePath=base_path()。“/outputs/”$文件下载;第二个错误是,在我的csv函数中,我使用了:$f=fopen('php://temp","w",;那个php://temp 错误的来源是什么?我如何在Laravel的临时文件夹中打开文件?