nouveau fichier : SRC/app/Http/Controllers/ImageController.php

modifié :         SRC/app/Http/routes.php
	modifié :         SRC/composer.json
	modifié :         SRC/composer.lock
	modifié :         SRC/config/app.php
	modifié :         SRC/resources/views/backend/ref_listeoeuvres.blade.php
This commit is contained in:
sidya82
2015-03-17 11:55:12 +01:00
parent 40dae8987b
commit 091c3cbdd7
6 changed files with 124 additions and 5 deletions

View File

@ -0,0 +1,56 @@
<?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 2 semaine sur le serveur
Cache::add($key, $r, 10080*2 );
}
return $r;
}
}

View File

@ -18,6 +18,9 @@ Route::get('changerref/{id}', 'HomeController@changerRef');
Route::get('api/searchRef/{reg?}', 'APIController@refByName');
Route::get('api/searchOeuvres', 'APIController@searchOeuvres');
//API FOR IMAGE RESIZE
Route::get('/image/{size}/{url}', 'ImageController@getImage');
// LOGIN RESET
Route::get('password/reset/{token}', array(
@ -69,4 +72,4 @@ Route::group(['middleware' => 'ifAdmin'], function ()
Route::get('admin/updateUser/{id}', 'AdminController@updateUser');
Route::get('admin/logAs/{id}', 'AdminController@logAs');
Route::get('logout', 'LoginController@logout');
});
});