Uploud de Anexo

No uploud de arquivos utilizando o Laravel eu utilizei a mesma base que foi desenvolvida no uploud de imagem, apenas acrescentei algumas coisas a mais no insert no banco de dados!

O padrão de criação de uploud de arquivos que eu deixei foi "FilesExemplo"

(OBS) No lugar de exemplo coloque o tipo de documento que será anexado.

Vamos começar criando o model e a migration.

Terminal

php artisan make:model FilesRqpsAws -m

Agora no seu arquivo Model que foi criado coloque os seguintes itens de protect:

FilesRqpsAws.php

 protected $fillable = [
     'file_name',
     'mime_type',
     'file_size',
     'file_path',
     'file_original_name',
     'status',
     'type',
     'rwps_aws_id',
 ];

Repare que eu mudei o ultimo campo de acordo com o ID que iremos criar na Migration do Laravel.

Agora no arquivo de migration que foi criada cm o nosso primeiro comando "2018_07_10_182214_create_files_rqps_aws_table.php", você deve colocar as seguintes linhas.

2018_07_10_182214_create_files_rqps_aws_table.php

public function up()
{
    Schema::create('files_rqps_aws', function (Blueprint $table) {

        });
    });
}

public function down()
{
    Schema::dropIfExists('files_rqps_aws');
}

(OBS) Ali onde tem o comentário de "O nome original do arquivo", é o único local diferente de um uploud de imagem, pois aqui é necessário que o nome do arquivo original seja salvo e depois apresentado novamente para o usuário.

Após ter feito as implementações acima . Rode:

Terminal

php artisan migrate:refresh

(OBS) Este comando reseta o banco de dados e já cria a tabela cuja qual acabamos de fazer.

Se o seu projeto tiver alguma seeder, você pode roda-lá também.

Agora vamos para a nossa View, de cadastro, no meu caso o create.blade.php, deve ser feito nele e não no form.blade.php, pois como o form é utilizado no create e no edit, a nossa requisição de imagem serve apenas para o create. (OBS) O edit também terá a mesma funcionalidade de mandar uploud de arquivos com o diferencial de listar os itens que ja foram adicionados.

Entre no seu arquivo view create.blade.php e coloque o seguinte trecho de código dentro do seu formulário.

create.blade.php

<!-- INI: Anexos -->
    <div class="col-sm-12">
        <div class="row">
            <div class="col-lg-12">
                <div class="panel panel-default">
                    <div class="panel-heading clearfix">
                        <h4 class="panel-title pull-left">{{trans('titles.attachment')}}</h4>
                        <div class="btn-group pull-right">
                        </div>
                    </div>
                    <div class="panel-body">
                        <div class="form-group">
                            {{ Form::label('temperature_min', trans('titles.attachment')) }}
                            <input type="file" name="files[]" multiple >
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
<!-- FIM: Anexos -->

Este trecho de código faz com que seja solicitado o input dos arquivos.

Repare que na classe input do HTML a tag "name" que esta com "files[]" esta com estes colchetes, são eles que permitem a inclusão de arquivos simultâneos. Sem eles é apenas feito uploud de um arquivo por vez.

Last Updated:
Contributors: Maicon Cerutti