在Debian上使用Laravel框架实现文件上传和下载,你需要遵循以下步骤:
配置文件系统:
打开 .env
文件,确保你的文件系统配置正确。例如,如果你想将文件存储在本地磁盘上,可以这样配置:
FILESYSTEM_DRIVER=local
如果你想使用公共磁盘(通常是 storage/app/public
),可以这样配置:
FILESYSTEM_DRIVER=public
创建路由:
在 routes/web.php
文件中添加一个路由来处理文件上传表单的提交。
Route::get('/upload', function () {
return view('upload');
});
Route::post('/upload', 'FileUploadController@store');
创建控制器: 使用 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!');
}
}
创建视图:
在 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>
测试上传:
访问 http://your-debian-ip/upload
,你应该能看到上传表单。选择一个文件并提交表单,如果一切配置正确,文件将被上传到指定的目录。
创建路由:
在 routes/web.php
文件中添加一个路由来处理文件下载请求。
Route::get('/download/{filename}', 'FileDownloadController@show');
创建控制器: 使用 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);
}
}
测试下载:
假设你已经上传了一个文件 example.txt
到 storage/app/public/uploads/
目录下,访问 http://your-debian-ip/download/example.txt
,你应该能够下载该文件。
public
目录下的文件。public
文件系统驱动,确保你已经运行了 php artisan storage:link
命令来创建符号链接。php-curl
和 php-mbstring
)。通过以上步骤,你应该能够在Debian上使用Laravel实现文件的上传和下载功能。