57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php namespace App\Http\Controllers;
 | |
| use Illuminate\Http\Response;
 | |
| use Cache;
 | |
| use Image;
 | |
| 
 | |
| class ImageController extends Controller {
 | |
| 
 | |
| 	/**
 | |
| 	 * Create a new controller instance.
 | |
| 	 *
 | |
| 	 * @return void
 | |
| 	 */
 | |
| 	public function __construct()
 | |
| 	{
 | |
| 		//
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * 
 | |
| 	 *
 | |
| 	 * @return Response
 | |
| 	 */
 | |
| 	public function getImage($size,$url)
 | |
| 	{
 | |
| 		$size = htmlspecialchars($size);
 | |
| 		$url = htmlspecialchars($url);
 | |
| 		$key = $size.$url;
 | |
| 		if (Cache::has($key))
 | |
| 		{
 | |
| 			//On recupere notre image en cache
 | |
| 		    $r = Cache::get($key);
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			// recup image sur le serveur
 | |
| 			$ch = curl_init();// set url
 | |
| 			curl_setopt($ch, CURLOPT_URL, "http://www.augustins.org/documents/10180/156407/".$url);
 | |
| 			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 | |
| 			$content = curl_exec($ch);
 | |
| 			curl_close($ch);
 | |
| 
 | |
| 			
 | |
| 			//redimensionnement
 | |
| 			$img = Image::make($content)->resize($size, $size, function ($constraint) {
 | |
| 				$constraint->aspectRatio();
 | |
| 			});
 | |
| 
 | |
| 			$r = $img->response('jpg');
 | |
| 
 | |
| 		    //Met en cache l'image avec son header pendant 6 mois sur le serveur
 | |
| 			Cache::add($key, $r, 241920);
 | |
| 		}
 | |
| 		return $r;
 | |
| 	}
 | |
| 
 | |
| }
 |