gpt4 book ai didi

php - 如何从存储中下载文件?

转载 作者:行者123 更新时间:2023-12-05 02:12:03 24 4
gpt4 key购买 nike

我正在使用 Laravel 的文件存储系统,我试图触发下载响应以通过浏览器下载我的文件,但它找不到正确的文件,而是下载我的文件页面 View 脚本。我也设置了存储链接。

如有任何建议,我们将不胜感激。

文件.blade.php

 @extends('layouts.app')

@section('content')


<div class="container">
<form action="{{route('upload')}}" method="POST"
enctype="multipart/form-data" name="formName">
{{csrf_field() }}
<input type="file" name="file">
<input type="submit" class="btn" name="submit">
</form>
<div class="row">
@foreach($files as $file)
<a href="{{route('download',$file)}}" download="{{$file->name}}">
{{$file->name}}</a>

</div>
</div>

@endsection

下载功能

public function download($file){


return response()->download(storage_path('/storage/app/files/'.$file));
}

文件路径

  Route::get('files', 'FileController@index')->name('upload');
Route::post('files', 'FileController@store');
Route::get('files/{file}', 'FileController@download')->name('download');

最佳答案

从链接中删除此download="{{$file->name}}"
您可以将 download 添加为 html 属性:

<a href="{!! route('download', $file->name) !!}" download>{{ $file->name }}</a>

但在这种情况下您不需要它,只需使用:

<a href="{!! route('download', $file->name) !!}">{{$file->name}}</a>

Controller 中的 response()->download() 方法将生成一个响应,强制浏览器在给定路径下载文件。所以请确保你的路径正确。
如果您的文件位于 your-project-root-path/storage/app/files/ 中,您可以使用:

return response()->download(storage_path('/app/files/'. $file));

如果您的文件位于 your-project-root-path/storage/storage/app/files/ 中,请使用:

return response()->download(storage_path('/storage/app/files/'. $file));

关于php - 如何从存储中下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56534174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com