Skip to content

Instantly share code, notes, and snippets.

@elinardo10
Last active September 30, 2019 12:40
Show Gist options
  • Save elinardo10/ca6f06079445c1792efb017b8661c902 to your computer and use it in GitHub Desktop.
Save elinardo10/ca6f06079445c1792efb017b8661c902 to your computer and use it in GitHub Desktop.
Uploado de multiplo de imagens com FormRequest
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row mt-5">
<div class="col-md-8 offset-md-2">
<div class="card">
<div class="card-header">Cadastrar Novo imagem em {{$projeto->nome}}</div>
<div class="card-body">
@include('partials._messages')
<form name="addimagetoalbum" method="POST" action="{{URL::route('add_image_to_album')}}" enctype="multipart/form-data">
{{ csrf_field() }}
<input type="hidden" name="projeto_id" value="{{$projeto->id}}" />
<div class="form-group">
<input multiple name="imagem[]" type="file" class="form-control"><br/>
<input type="submit" value="Salvar imagem" class="btn btn-success">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
public function postAdd(ImagemRequest $request)
{
if ($request->hasFile('imagem') && $request->file('imagem')->isValid()) {
$imagem = $request->imagem;//pega o form
foreach ($imagem as $img) {
$imagem_nome = time().$img->getClientOriginalName(); //setando um nome pra img
// $uploadSuccess = $request->imagem->storeAs('albunsprojetos', $imagem_nome);
// com storeAs ele ja cria a pasta dentro de storage/app/public/
// usando a lib para remensionar e salvar na storage! Graças a Deus!
$image = Image::make($img)->resize(640, 480)->save( storage_path('app/public/albunsprojetos/' . $imagem_nome ));
// salvando no banco tudo lindo!
Imagem::create(array(
'imagem' => $imagem_nome,
'projeto_id'=> $request->get('projeto_id')
));
}
}
// mensagem de suscesso!
Session::flash('msgsuccess', 'Imagem salvo com Sucesso!');
return redirect()->route('projeto.show',['id'=>$request->get('projeto_id')]);
}
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ImagemRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'projeto_id' => 'required|numeric|exists:projetos,id',
'imagem.*' => 'required|image|dimensions:min_width=640,min_height=480',
];
}
public function messages(){
return[
'required' => 'O campo :attribute não pode ser vazio!',
'imagem.*required' => 'Por favor selecione uma imagem válida',
'imagem.*image' => 'Não é uma imagem válida!',
'imagem.*dimensions' => 'Tamanho da imagem inválido!',
];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment