Download do arquivo Laravel

Eu tenho um método no meu aplicativo Laravel 5.3 que retorna um arquivo como este:

public function show(File $file) { $path = storage_path('app/' . $file->getPath()); return response()->download($path, $file->name); } 

Eu estou fazendo um pedido de get em vue.js como este:

 show (file) { Vue.http.get('/api/file/' + file); } 

O resultado é o seguinte:

insira a descrição da imagem aqui

Oque pode estar errado aqui? Estou esperando que o navegador faça o download da imagem.

–EDITAR–

insira a descrição da imagem aqui

Quando eu dd($path); Este é o resultado: /home/vagrant/Code/forum/storage/app/users/3/messages/xReamZk7vheAyNGkJ8qKgVVsrUbagCdeze.png

A rota está na minha api.php :

 Route::get('/file/{file}', 'File\FileController@show'); 

Quando eu adicioná-lo à minha web.php, ele está funcionando. Mas eu preciso acessá-lo através da minha api!

Você pode fazê-lo assim:

 public function show(File $file) { $path = storage_path('app/' . $file->getPath()); $headers = array( 'Content-Type: image/png', ); return response()->download($path, $file->name, $headers); } 

Espero que isto ajude!

Adicionar headers:

 public function show(File $file) { $path = storage_path('app/' . $file->getPath()); if(!file_exists($path)) throw new Exception("Can't get file"); $headers = array( "Content-Disposition: attachment; filename=\"" . basename($path) . "\"", "Content-Type: application/force-download", "Content-Length: " . filesize($path), "Connection: close" ); return response()->download($path, $file->name, $headers); } 

OU use a function de download personalizado deve ser assim:

 function download($filepath, $filename = '') { header("Content-Disposition: attachment; filename=\"" . basename($filepath) . "\""); header("Content-Type: application/force-download"); header("Content-Length: " . filesize($filepath)); header("Connection: close"); readfile($filepath); exit; }