Maison  >  Article  >  cadre php  >  Comment définir la période de validité de l'accès aux images dans Laravel

Comment définir la période de validité de l'accès aux images dans Laravel

PHPz
PHPzoriginal
2023-04-12 09:13:37865parcourir

Laravel est un framework de développement Web très populaire. Dans le processus de développement Web, des problèmes liés au téléchargement, au stockage et à l'accès des images sont souvent impliqués. La définition de la période de validité de l'accès aux images est une tâche très importante, qui peut protéger efficacement la sécurité des images et éviter les risques de sécurité inutiles.

Pour le paramétrage de la période de validité d'accès aux images du framework Laravel, différentes solutions peuvent être adoptées. Cet article présentera plusieurs solutions couramment utilisées, dans l'espoir d'être utiles aux développeurs Laravel.

1. Implémentation via un middleware

Le middleware dans le framework Laravel est un mécanisme pratique pour traiter les demandes et les réponses. La période de validité de l'accès aux images peut être définie dans le middleware.

Tout d'abord, nous pouvons créer un nouveau middleware, tel que ExpiresMiddleware, le code est le suivant :

<?php

namespace App\Http\Middleware;

use Closure;

class ExpiresMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->header('Cache-Control', 'public, max-age=86400');
        $response->header('Expires', gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));

        return $response;
    }
}

Dans ce middleware, nous définissons les champs Cache-Control et Expires de l'en-tête de réponse. Parmi eux, Cache-Control spécifie la politique de cache comme publique et la période de validité est de 86 400 secondes ; Expires spécifie le délai d'expiration de la réponse comme étant l'heure actuelle + 86 400 secondes.

Ensuite, nous pouvons appliquer ce middleware à une route ou un contrôleur dans l'application Laravel, par exemple :

Route::get('/image/{id}', 'ImageController@show')->middleware('expires');

Dans cet exemple, nous définissons le middleware ExpiresMiddleware pour la route /image/{id}.

Avec les paramètres ci-dessus, l'en-tête de réponse d'image renvoyé en accédant à cette route contiendra les champs Cache-Control et Expires. Le navigateur mettra l'image en cache et redemandera l'image après 86 400 secondes.

2. Implémentation via la configuration nginx

En plus de la configuration via le middleware Laravel, vous pouvez également définir la période de validité d'accès à l'image via la configuration nginx.

Tout d'abord, nous devons ajouter la configuration des ressources image dans le fichier de configuration nginx, par exemple :

location ~* \.(gif|jpg|png)$ {
    expires 1d;
}

Dans cet exemple, nous définissons le champ expire pour que toutes les ressources image gif, jpg et png expirent après 1 jour. De cette façon, lors de l'accès à la ressource image, nginx renverra un en-tête de réponse contenant le champ d'expiration, et le navigateur mettra en cache l'image et redemandera l'image après 1 jour.

Grâce à la méthode ci-dessus, nous pouvons définir une période de validité d'accès aux images flexible dans le fichier de configuration nginx pour améliorer la sécurité et la vitesse d'accès aux images.

Résumé :

Dans le processus de développement de Laravel, définir la période de validité d'accès aux images est une tâche très importante. En termes de mise en œuvre, nous pouvons configurer différents paramètres via le middleware Laravel ou la configuration nginx.

Grâce à l'introduction ci-dessus, je pense que vous avez compris comment définir la période de validité de l'accès aux images dans Laravel. J'espère que cela sera utile à votre pratique de développement 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn