Comment utiliser un middleware pour le traitement d'images dans Laravel
Nov 03, 2023 pm 12:55 PMComment utiliser le middleware pour le traitement d'images dans Laravel
Dans les applications Web modernes, le traitement d'images est une tâche très courante. Laravel est un framework PHP très populaire qui fournit une puissante fonction de traitement d'image. En utilisant un middleware, nous pouvons traiter les images plus efficacement sans recourir à d'autres bibliothèques tierces.
Ci-dessous, nous utiliserons un exemple pratique pour illustrer comment utiliser le middleware pour le traitement d'images dans Laravel.
Tout d’abord, nous devons créer une classe middleware. Exécutez la commande suivante dans le terminal pour générer une nouvelle classe middleware :
php artisan make:middleware ImageProcessingMiddleware
Cela créera un fichier nommé ImageProcessingMiddleware.php
dans le document du répertoire app/Http/Middleware
. Ouvrez ce fichier et ajoutez le code suivant dans la méthode handle
: app/Http/Middleware
目录下创建一个名为 ImageProcessingMiddleware.php
的文件。打开这个文件,并在 handle
方法中添加以下代码:
public function handle($request, Closure $next) { $response = $next($request); // 检查是否为图片类型 if ($response instanceof IlluminateHttpResponse && in_array($response->headers->get('Content-Type'), ['image/jpeg', 'image/png', 'image/gif'])) { // 获取原始图像路径 $path = $response->original; // 执行图片处理逻辑 $image = Image::make($path); $image->resize(300, null, function ($constraint) { $constraint->aspectRatio(); }); $image->save($path); } return $response; }
上述代码做了以下事情:
- 检查返回的响应是否为图片类型。
- 如果是图片类型,则使用 Intervention Image 库打开原始图片。
- 执行图片处理逻辑,这里使用了一个简单的示例:将图片缩放为宽度为 300 像素,高度按比例调整。
- 将处理后的图片保存回原始路径。
接下来,我们需要将中间件类注册到 Laravel 应用程序中。打开 app/Http/Kernel.php
文件,并在 $middleware
属性中添加以下代码:
protected $middleware = [ // ... AppHttpMiddlewareImageProcessingMiddleware::class, ];
现在,我们已经完成了中间件的准备工作。接下来,我们需要创建一个用于测试的路由。打开 routes/web.php
文件,并添加以下代码:
Route::get('/image', function () { $path = public_path('images/test.jpg'); return response()->file($path); });
上述代码创建了一个 /image
路由,它会返回位于 public/images/test.jpg
的测试图片。
最后,我们需要启动 Laravel 开发服务器来测试我们的中间件。在终端中执行以下命令:
php artisan serve
现在,打开浏览器,并访问 http://localhost:8000/image
。你应该可以看到位于 public/images/test.jpg
rrreee
- Vérifiez si la réponse renvoyée est de type image.
- S'il s'agit d'un type d'image, utilisez la bibliothèque d'images d'intervention pour ouvrir l'image originale.
- Exécutez la logique de traitement de l'image, ici un exemple simple est utilisé : redimensionnez l'image à une largeur de 300 pixels et la hauteur est ajustée proportionnellement.
- Enregistrez l'image traitée dans le chemin d'origine.
Ensuite, nous devons enregistrer la classe middleware dans l'application Laravel. Ouvrez le fichier
app/Http/Kernel.php
et ajoutez le code suivant dans l'attribut $middleware
: rrreee🎜Maintenant, nous avons terminé la préparation du middleware. Ensuite, nous devons créer une route pour les tests. Ouvrez le fichier routes/web.php
et ajoutez le code suivant : 🎜rrreee🎜Le code ci-dessus crée une route /image
qui renvoie l'emplacement situé dans public/ images/ Image de test de test.jpg
. 🎜🎜Enfin, nous devons démarrer le serveur de développement Laravel pour tester notre middleware. Exécutez la commande suivante dans le terminal : 🎜rrreee🎜Maintenant, ouvrez votre navigateur et visitez http://localhost:8000/image
. Vous devriez voir que l'image originale située dans public/images/test.jpg
a été traitée par le middleware. 🎜🎜Résumé : 🎜En utilisant un middleware, nous pouvons effectuer un traitement d'image dans Laravel très facilement. Dans cet article, nous montrons comment utiliser la bibliothèque d'images d'intervention pour redimensionner des images via un exemple de middleware. Vous pouvez étendre davantage ce middleware pour répondre à vos besoins spécifiques. J'espère que cet article sera utile pour apprendre la fonction de traitement d'image du middleware Laravel. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment ajouter du bruit aux images en utilisant Python

Traitement d'image Golang : comment effectuer un mappage de dégradés de couleurs et d'échelles de gris d'images

Comment utiliser Golang pour améliorer les bordures et les bords des images

Comment utiliser Golang pour masquer et masquer les effets sur les images

Comment gérer la mise en cache et le préchargement des images dans Vue ?

Comment utiliser Laravel pour implémenter des fonctions de traitement d'image

Comment flouter une image en utilisant PHP

Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images
