принудительно загрузить файл с помощью laravel

Итак, я использую 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

Вы знаете, что случилось?


person Alex    schedule 24.12.2015    source источник


Ответы (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);
person Marcin Nabiałek    schedule 24.12.2015
comment
Я уже поменял. Но я ничего не передал в представление. Может ли это быть проблемой? - person Alex; 25.12.2015
comment
Какой вид вы имеете в виду? Вы не используете здесь какое-либо представление, после нажатия вы просто заставляете браузер загрузить файл и все - person Marcin Nabiałek; 27.12.2015
comment
Но ничего не происходит. Нет принудительной загрузки - person Alex; 27.12.2015