這是Response :: download函數中的一個錯誤。將其更改爲:
// File: vendor/laravel/framework/src/Illuminate/Support/Facades/Response.php
public static function download($file, $name = null, array $headers = array(), $disposition = 'attachment')
{
$response = new BinaryFileResponse($file, 200, $headers, true);
if (is_null($name))
{
$name = basename($file);
}
return $response->setContentDisposition($disposition, $name, Str::ascii($name));
}
https://github.com/laravel/framework/pull/4296
Laravel 5
在Laravel 5,可以延長\照亮\路由\ ResponseFactory類和重寫下載()方法。然後,在的ServiceProvider,註冊您的自定義ResponseFactory作爲默認的一個:
// We extends \Illuminate\Routing\ResponseFactory class, that implements Illuminate\Contracts\Routing\ResponseFactory
$this->app->singleton('Illuminate\Contracts\Routing\ResponseFactory', function ($app) {
return new MyCustomResponseFactoryExtendedFromResponseFactory($app['Illuminate\Contracts\View\Factory'], $app['redirect']);
});
這樣做,你可以使用默認的方法(響應:: JSON(),respose() - >視圖()等),並以同樣的方式自定義方法:響應::下載(),_response() - >下載
我會重命名這些文件......讓他們這樣做可能會讓人頭痛不已。 –
Laravel論壇上的同樣問題,除了重命名文件之外,還沒有真正的解決方案。 http://forums.laravel.io/viewtopic.php?pid=61493 – 2013-11-20 15:05:50