上传和处理文件和图像 Laravel

在表单中定义上传字段

首先,在 HTML 表单中添加一个 <input type="file"> 字段,以允许用户选择要上传的文件或图像。

<form method="POST" action="{{ route('upload') }}" enctype="multipart/form-data">  
    @csrf  
    <input type="file" name="file">  
    <button type="submit">Upload</button>  
</form>  

 

处理上传请求

在 Laravel 控制器中,您可以在方法中处理上传请求。 使用该 Illuminate\Http\Request 对象访问上传的文件并执行必要的处理操作。

use Illuminate\Http\Request;  
  
public function upload(Request $request)  
{  
    if($request->hasFile('file')) {  
        $file = $request->file('file');  
        // Handle the file here  
    }  
}  

 

存储文件

Laravel 提供了一种 store 存储上传文件的方法。 只需在文件对象上调用此方法并提供所需的存储路径即可。

$path = $file->store('uploads');

 

处理图像

如果您需要处理图像,例如调整大小、裁剪或应用滤镜,可以使用图像处理库,例如 Intervention Image。 首先,通过 Composer 安装 Intervention Image 包:

composer require intervention/image

然后,您可以使用库的方法来处理图像。

use Intervention\Image\Facades\Image;  
  
public function upload(Request $request)  
{  
    if($request->hasFile('file')) {  
        $file = $request->file('file');  
        $image = Image::make($file);  
        // Handle the image here  
    }  
}  

 

显示上传的文件和图片

最后,您可以在用户界面中显示上传的文件和图像。 使用 Laravel 的辅助方法为存储的文件和图像生成公共 URL,并在 HTML 或 CSS 中使用它们。

$url = asset('storage/'. $path);

 

您可以使用 $url HTML 或 CSS 中的变量来显示上传的文件或图像。

 

通过遵循这些步骤并利用 的 Laravel 内置功能,您可以轻松上传和处理应用 Laravel 程序中的文件和图像。