5

所以我正在使用 Laravel 5,我试图强制下载选定的文件,但没有任何反应。

public function downloadUserFile(){
        $result = $_POST['filename'];
        $entry = File::where('filename', $result)->firstOrFail();
        $file = Storage::disk()->get($entry->filePath);
        $headers = array('Content-Type' => $entry->mimetype);
        return response()->download(storage_path($entry->filePath), $result, $headers);
}

并且响应标头似乎没问题

Accept-Ranges: none
Cache-Control: public
Connection: Keep-Alive
Content-Disposition: attachment; filename="SIGNAL - Nadezdata.mp3"
Content-Length: 4205059
Content-Type: audio/mpeg

你知道出了什么问题吗?

4

1 回答 1

1

我认为问题出在路径上。

默认情况下,config/filesystems.php本地路径是这样定义的:storage_path('app')并且您将以下路径传递给下载:(此处storage_path($entry->filePath)app包含)。

你应该做的是改变:

return response()->download(storage_path($entry->filePath), $result, $headers);

进入:

return response()->download(storage_path('app/'.$entry->filePath), $result, $headers);
于 2015-12-24T21:00:06.093 回答