debian

Laravel在Debian上如何实现文件上传与下载

小樊
37
2025-06-21 23:41:39
栏目: 智能运维

在Debian上使用Laravel框架实现文件上传和下载,你需要遵循以下步骤:

文件上传

  1. 配置文件系统: 打开 .env 文件,确保你的文件系统配置正确。例如,如果你想将文件存储在本地磁盘上,可以这样配置:

    FILESYSTEM_DRIVER=local
    

    如果你想使用公共磁盘(通常是 storage/app/public),可以这样配置:

    FILESYSTEM_DRIVER=public
    
  2. 创建路由: 在 routes/web.php 文件中添加一个路由来处理文件上传表单的提交。

    Route::get('/upload', function () {
        return view('upload');
    });
    
    Route::post('/upload', 'FileUploadController@store');
    
  3. 创建控制器: 使用 Artisan 命令创建一个新的控制器:

    php artisan make:controller FileUploadController
    

    app/Http/Controllers/FileUploadController.php 文件中添加以下代码:

    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Storage;
    
    class FileUploadController extends Controller
    {
        public function store(Request $request)
        {
            $request->validate([
                'file' => 'required|file',
            ]);
    
            $path = $request->file('file')->store('uploads');
    
            return back()->with('success', 'File uploaded successfully!');
        }
    }
    
  4. 创建视图: 在 resources/views 目录下创建一个名为 upload.blade.php 的文件,并添加以下代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>File Upload</title>
    </head>
    <body>
        <form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data">
            @csrf
            <input type="file" name="file">
            <button type="submit">Upload</button>
        </form>
    </body>
    </html>
    
  5. 测试上传: 访问 http://your-debian-ip/upload,你应该能看到上传表单。选择一个文件并提交表单,如果一切配置正确,文件将被上传到指定的目录。

文件下载

  1. 创建路由: 在 routes/web.php 文件中添加一个路由来处理文件下载请求。

    Route::get('/download/{filename}', 'FileDownloadController@show');
    
  2. 创建控制器: 使用 Artisan 命令创建一个新的控制器:

    php artisan make:controller FileDownloadController
    

    app/Http/Controllers/FileDownloadController.php 文件中添加以下代码:

    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Storage;
    
    class FileDownloadController extends Controller
    {
        public function show($filename)
        {
            $path = storage_path('app/public/uploads/' . $filename);
    
            if (!file_exists($path)) {
                abort(404);
            }
    
            return response()->download($path);
        }
    }
    
  3. 测试下载: 假设你已经上传了一个文件 example.txtstorage/app/public/uploads/ 目录下,访问 http://your-debian-ip/download/example.txt,你应该能够下载该文件。

注意事项

通过以上步骤,你应该能够在Debian上使用Laravel实现文件的上传和下载功能。

0
看了该问题的人还看了