【发布时间】:2016-01-02 17:44:04
【问题描述】:
我对 Laravel 4.2 中的 Response::download() 有点困惑
我想在不暴露文件的实际公共路径的情况下触发 ZIP 存档的下载..
这是我在访问路由时遇到的错误
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
我的 ROUTE 是这样写的:
/*
/ Download Package (GET)
*/
Route::get('/download-packages/{$package}', array(
'as' => 'download-package',
'uses' => 'DownloadController@getPackageDownload'
));
Controller中的getPackageDownload函数是这样写的:
public function getPackageDownload( $package ){
$file = public_path() . "/downloads/packages/" . $package . ".zip" ;
$name = $package . ".zip";
$headers = array(
'Content-Type' => 'application/zip',
);
return Response::download($file, $name, $headers);
}
我的查看按钮代码:
<a href="{{ URL::route('download-package',[$package->package]) }}" target="_blank">Download</a></div>
视图中生成的下载链接是这样的
http://app.dev/laravel/public/download-packages/package-name
它与 ZIP 文件的实际公共位置不同,但这是需要的,我的理解是应该在 getPackageDownload 函数中触发响应。
【问题讨论】:
标签: laravel-4 download laravel-routing