在Laravel中下载上传的文件可以通过以下步骤实现:
<form action="/upload" method="POST" enctype="multipart/form-data">
@csrf
<input type="file" name="file">
<button type="submit">上传文件</button>
</form>
Route::post('/upload', 'FileController@upload');
use Illuminate\Http\Request;
class FileController extends Controller
{
public function upload(Request $request)
{
if ($request->hasFile('file')) {
$file = $request->file('file');
$path = $file->store('uploads'); // 将文件保存到storage/app/uploads目录下
return $path;
}
}
}
Route::get('/download/{filename}', 'FileController@download');
use Illuminate\Support\Facades\Storage;
class FileController extends Controller
{
public function download($filename)
{
$path = storage_path('app/uploads/' . $filename); // 获取文件的完整路径
if (file_exists($path)) {
return response()->download($path, $filename); // 返回文件的下载响应
}
}
}
通过以上步骤,你就可以在Laravel中实现文件的上传和下载功能了。在上传文件时,文件会被保存到指定目录中,而在下载文件时,可以通过文件名获取文件的完整路径,并返回文件的下载响应。
领取专属 10元无门槛券
手把手带您无忧上云