Upload de imagens usando laravel4 e jquery uploader

Nota: Presumo que você tenha o laravel instalado e pronto .. se não estiver, verifique esta http://laravel.com/docs/quick#installation

Passo 1 :

pegue recursos do uploader Jquery aqui: https://github.com/blueimp/jQuery-File-Upload

Passo 2 :

em seu routes.php, adicione a seguinte rota para lidar com a solicitação de postagem:

Route::post('upload',array('as'=>'upload', 'before'=>'auth','uses'=>'UploadController@index'));

Passo 3:
na pasta de controladores, crie um novo controlador chamado UploadController.php, este irá conter a ação de postagem que fará o upload da imagem, será o seguinte:

<?php class UploadController extends BaseController
{
public $restful=true;public function index(){
$valid_exts
= array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
$max_size
= 2000 * 1024; // max file size (200kb)
$path
= public_path() . '/img/'; // upload directory
$fileName
= NULL;
if ( $_SERVER['REQUEST_METHOD'] === 'POST' )
{
$file
= Input::file('uploaded_img');
// get uploaded file extension
//$ext = $file['extension'];
$ext
= $file->guessClientExtension();
// get size
$size
= $file->getClientSize();
// looking for format and size validity
$name
= $file->getClientOriginalName();
if (in_array($ext, $valid_exts) AND $size < $max_size)
{
// move uploaded file from temp to uploads directory
if ($file->move($path,$name))
{
$status
= 'Image successfully uploaded!';
$fileName
= $name;
}
else {
$status
= 'Upload Fail: Unknown error occurred!';
}
}
else {
$status
= 'Upload Fail: Unsupported file format or It is too large to upload!';
}
}
else {
$status
= 'Bad request!';
}
// echo out json encoded status
return header('Content-type: application/json') . json_encode(array('status' => $status,
'fileName' => $fileName));
}
}
?>

Etapa 4:
e sua visualização será assim:

<link href="{{asset('css/uploadfile.css')}}" rel="stylesheet">
<script src="{{asset('js/jquery.uploadfile.min.js')}}"></script><script type="text/javascript">
$().ready(function()

{

$("#avatarUploader").uploadFile({

url:"{{route('upload')}}",

allowedTypes:"png,gif,jpg,jpeg",

fileName:"uploaded_img",

onSuccess:function(files,data,xhr)

{

data= $.parseJSON(data); // yse parseJSON here

if(data.error){

//there is an error

} else {

//there is no error

fileName = data['fileName'];

$('#avatar').val(fileName);

}

}

});

});


<div id="avatarUploader">Upload</div>
<input type="hidden" name="avatar" id="avatar"/>

Finalmente:
Você encontrará sua imagem carregada em: public / img /

E é assim que você implementa o upload de imagens em laravel4 usando jquery uploader. Seus comentários são mais que bem-vindos.