2017 © Pedro Peláez
 

library dropzone

Integration between dropzone and laravel5.

image

jakjr/dropzone

Integration between dropzone and laravel5.

  • Wednesday, November 29, 2017
  • by jakjr
  • Repository
  • 2 Watchers
  • 1 Stars
  • 1,604 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 3 Open issues
  • 12 Versions
  • 8 % Grown

The README.md

dropzone

Este pacote para Laravel5 serve para persistir temporáriamente arquivos submetidos através da biblioteca DropzoneJS., (*1)

Ao realizar o upload de um arquivo, este será armazenado em uma área temporária., (*2)

Caso ocorra um reload na página, o componente irá repopular os arquivos previamente carregados, previnindo que seu usuário tenha que inserir os arquivos novamente., (*3)

Estes casos de reload de página podem ocorrer por falha na validação de algum campo após submeter o formulário, ou por qualquer outro erro no lado so servidor., (*4)

Existe a restrição de que um formulário contenha apenas um componente., (*5)

Install

composer require jakjr/dropzone, (*6)

config/app.php, (*7)

'providers' => [
    ...
    Jakjr\Dropzone\DropzoneServiceProvider::class,
]

'aliases' => [
    ...
    'Dropzone'  => Jakjr\Dropzone\DropzoneFacade::class,
]

Publicando os assets:, (*8)

$php artisan vendor:publish --provider="Jakjr\Dropzone\DropzoneServiceProvider"

Uso

routes.php:

Route::post('dropzone', function(){
    app('dropzone')->upload();
});

Route::delete('dropzone', function(){
    app('dropzone')->delete();
});

São os endpoints que receberão os arquivos carregados pelo DropzoneJS., (*9)

O método upload irá armazenar o arquivo em um diretrio temporário do sistema, e em um diretório com o nome do ID da sessão do usuário., (*10)

Views (carregando os assets):

@section('css')
    <link rel="stylesheet" href='/vendor/dropzone/css/dropzone.min.css'>
@endsection

@section('js')
    <script src="/vendor/dropzone/js/dropzone.min.js"></script>
    <script>
        $('.dropzone').lightDropzone({!! Dropzone::getConfig() !!});
    </script>
@endsection

Views (criando o componente)

Os atributos data-* são utilizados para configurar o componente DropzoneJS., (*11)

Seus nomes são auto-explicativos., (*12)

O attributo data-url deve é a URL do endpoint definido no routes.php, (*13)

Middleware

Registro o middleware do pacote:, (*14)

app\Http\Kernel.php:, (*15)

protected $routeMiddleware = [
    ...
    'dropzone' => \Jakjr\Dropzone\Middleware\Dropzone::class,
];

Este middleware é responsável por injetar no request de um submit os arquivos previamente carregados., (*16)

Controllers:

Aplique o middleware no método do controller que utilizará o carregamento de arquivos:, (*17)

class FormController extends Controller
{
    public function __construct()
    {
        $this->middleware('dropzone', ['only'=>['postForm']]);
    }
...
}

Utilize o Request para obter uma instância UploadedFile dos aquivos préviamente carregados:, (*18)

public function store(Request $request)
{
    ...
    //Use the methods from Laravel
    $request->file('files.0')->move ....
    ...
}

O arquivo permanecerá disponível no componente enquanto não foi movido para seu destino permanente., (*19)

Exemplo para mover todos os arquivos:, (*20)

if (!empty($files = $request->files->get('files'))) {

    /** @var UploadedFile $file */
    foreach($files as $file) {
        $file->move(
            storage_path(),
            $file->getClientOriginalName()
        );
    }

}

The Versions

29/11 2017

dev-master

9999999-dev

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

29/11 2017

1.0.11

1.0.11.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

28/11 2017

1.0.10

1.0.10.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

23/11 2017

1.0.9

1.0.9.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

23/11 2017

1.0.8

1.0.8.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

09/11 2016

1.0.7

1.0.7.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

09/11 2016

1.0.6

1.0.6.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

08/11 2016

1.0.5

1.0.5.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

01/07 2016

1.0.3

1.0.3.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

04/02 2016

1.0.2

1.0.2.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

22/01 2016

1.0.1

1.0.1.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone

22/01 2016

1.0.0

1.0.0.0

Integration between dropzone and laravel5.

  Sources   Download

The Requires

  • php >=5.5.9

 

laravel dropzone