SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Upload de arquivos
Matheus Henrique Neres dos Santos
com Request
Upload de Arquivos
Em uma aplicação é muito comum surgir a necessidade de fazer upload de arquivos, nesta aula iremos fazer
uploads de arquivos no Laravel utilizando os recursos da classe Request,
Entendendo as configurações de upload no arquivo /config/filesystems.php
2
Upload de Arquivos
Neste arquivo a primeira configuração que aparece é a “default”, que define qual “disks” de configuração de
uploads que a aplicação vai manter por default (por padrão).
Por default (por padrão) é ‘local’:
3
Ao deixar os dados assim com o padrão de upload como “local” no array “disks” vai
pegar as configurações do array “local”:
Upload de Arquivos
‘driver’: Como será feito o upload, se deixar “local” os arquivos ficarão armazenados na própria aplicação.
‘root’: É o diretório onde ficarão armazenados os arquivos no momento que fizer upload. O helper storage_path()
aponta para o diretório storage/, e como está assim storage_path(‘app’) define que o diretório de upload será
para storage/app/
4
Upload de Arquivos
Quando for fazer o upload de algum arquivo restrito, ou até mesmo que vai disponibilizar o download através de
response ou exibir apenas o item, pode deixar essa configuração. Porém se for fazer upload de imagens/arquivos
que precisarão ser exibidos posteriormente em uma view por exemplo, precisa utilizar as configurações de
“public”, então no “default” configure como “public”:
5
Ao fazer isso vai utilizar essas configurações de “disks”:
Com essas configurações os uploads ficaram em storage/app/public
Upload de Arquivos
Qual a vantagem?
Se for exibir as imagens em uma listagem na view vai ser mais simples de exibir.
Não é possível exibir uma imagem que está em storage/ em uma listagem na view, só é possível exibir itens na
view que estão em /public (que são o conteúdo publico de uma aplicação web (imagens, fontes, css, js)).
6
Upload de Arquivos
Como resolver?
É possível através do próprio artisan criar um link simbólico de storage/app/public para dentro de public/storage,
para isto faça esse comando:
7
php artisan storage:link
Esse comando cria um link simbólico em public/storage que aponta para
storage/app/public, ou seja, agora todos os arquivos disponíveis neste diretório
estarão disponível publicamente na aplicação e agora será possível acessa-los
facilmente.
Upload de Arquivos
Observação:
Antes de tentar fazer o upload é importante que o formulário que será utilizado para o envio dos arquivos (upload)
contenha o atributo enctype=”multipart/form-data”, exemplo:
8
Recuperar o arquivo de upload (de formulário):
Neste exemplo nosso campo de imagem tem o nome “image”, e para recuperar pode utilizar estas duas formas:
9
ou
Recuperar o arquivo de upload (de formulário)
É importante antes de fazer o upload verificar se informou o arquivo e se é um arquivo válido:
10
Verificações:
Recuperar o arquivo de upload (de formulário)
Recuperar algumas informações do arquivo:
11
Verificações:
• Retorna mime type do arquivo (Exemplo image/png)
• Retorna o nome original do arquivo
• Retorna a extensão do arquivo
• Retorna o tamanho do arquivo
Recuperar o arquivo de upload (de formulário)
Para fazer um upload de arquivos no laravel:
12
Fazendo upload:
O arquivo será salvo em storage/app/public/imagens/ com um nome aleatório
É possível informar também o “driver” de upload no momento de salvar:
Recuperar o arquivo de upload (de formulário)
Se quiser salvar o arquivo com um nome especial, é possível utilizar o método storeAs():
13
Fazendo upload:
A imagem será salva em storage/app/public/imagens/imagem-perfil.png
Também é possível informar dinamicamente qual é o driver de armazenamento:
Diretório onde será salvo
Nome do arquivo
Driver
Fazendo o upload da imagem para storage/app/public/imagens/ com nome personalizado.
14
Exemplo:
A imagem será salva em storage/app/public/imagens/nomeimagem.extensao
Como criamos um link simbólico de public/storage que aponta para storage/app/public é possível exibir facilmente
na view o arquivo de imagem:
15
Como exibir?
<img src="{{ url("storage/imagens/imagem-perfil.png")}}"
alt="imagem-perfil.png"/>
Links adicionais para estudo e referências:
• https://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/Uplo
adedFile.html
• https://blog.especializati.com.br/upload-de-arquivos-no-laravel-com-
request/
• https://laravel.com/docs/5.6/filesystem
Obrigado!!!
matheus.santos535@etec.sp.gov.br
Matheus Henrique Neres dos Santos
Professor:

Mais conteúdo relacionado

Mais procurados

INTERPRETAÇÃO TEXTUAL INGLÊS SÓ ENEM
INTERPRETAÇÃO TEXTUAL INGLÊS  SÓ ENEMINTERPRETAÇÃO TEXTUAL INGLÊS  SÓ ENEM
INTERPRETAÇÃO TEXTUAL INGLÊS SÓ ENEMAdilson P Motta Motta
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosTiago Antônio da Silva
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normaisSandro Freitas
 
Simple past tense
Simple past tenseSimple past tense
Simple past tenseAlaenne
 
Projects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsProjects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsSam Dias
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Androidwelingtonms
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringDaniel Brandão
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesJonathan Katz
 
Introduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platformIntroduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platformEastBanc Tachnologies
 
Estruturas de Dados em C#
Estruturas de Dados em C#Estruturas de Dados em C#
Estruturas de Dados em C#Marcelo Charan
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgeLorran Pegoretti
 
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...MongoDB
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 

Mais procurados (20)

INTERPRETAÇÃO TEXTUAL INGLÊS SÓ ENEM
INTERPRETAÇÃO TEXTUAL INGLÊS  SÓ ENEMINTERPRETAÇÃO TEXTUAL INGLÊS  SÓ ENEM
INTERPRETAÇÃO TEXTUAL INGLÊS SÓ ENEM
 
Introdução a HTML5
Introdução a HTML5Introdução a HTML5
Introdução a HTML5
 
Node js for beginners
Node js for beginnersNode js for beginners
Node js for beginners
 
Spring cloud config
Spring cloud configSpring cloud config
Spring cloud config
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicos
 
Golang Template
Golang TemplateGolang Template
Golang Template
 
[Certificacao ] normalizacao de dados e as formas normais
[Certificacao ]  normalizacao de dados e as formas normais[Certificacao ]  normalizacao de dados e as formas normais
[Certificacao ] normalizacao de dados e as formas normais
 
Simple past tense
Simple past tenseSimple past tense
Simple past tense
 
Projects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsProjects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 Projects
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Android
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
 
Introduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platformIntroduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platform
 
Estruturas de Dados em C#
Estruturas de Dados em C#Estruturas de Dados em C#
Estruturas de Dados em C#
 
Laravel Eloquent ORM
Laravel Eloquent ORMLaravel Eloquent ORM
Laravel Eloquent ORM
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e Bridge
 
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
https://docs.google.com/presentation/d/1DcL4zK6i3HZRDD4xTGX1VpSOwyu2xBeWLT6a_...
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Server side rendering review
Server side rendering reviewServer side rendering review
Server side rendering review
 

Semelhante a Upload de arquivos - Laravel

Tutorial DOCman em portugues
Tutorial DOCman em portuguesTutorial DOCman em portugues
Tutorial DOCman em portuguesJennifer Payne
 
Web Offline
Web OfflineWeb Offline
Web Offlineguiseek
 
Introdução ao zend framework
Introdução ao zend frameworkIntrodução ao zend framework
Introdução ao zend frameworkMarcos Oliveira
 
Instalação DSpace 3.x Windows e Linux
Instalação DSpace 3.x Windows e LinuxInstalação DSpace 3.x Windows e Linux
Instalação DSpace 3.x Windows e LinuxRodrigo Prado
 
Módulo 16 Instalação do DSpace 3.x Windows Linux
Módulo 16 Instalação do DSpace 3.x Windows LinuxMódulo 16 Instalação do DSpace 3.x Windows Linux
Módulo 16 Instalação do DSpace 3.x Windows LinuxRodrigo Prado
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_frameworkMilton Rodrigues
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistenciaRoberson Alves
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do MavenAllan Alves
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Essbase Series - Backup
Essbase Series - BackupEssbase Series - Backup
Essbase Series - BackupCaio Lima
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetosFer Nando
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetosFabiano Rodrigues
 
Instalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsInstalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsRodrigo De Jesus
 
Instalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsInstalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsRodrigo Prado
 
Instalando e configurando o cobian backup
Instalando e configurando o cobian backupInstalando e configurando o cobian backup
Instalando e configurando o cobian backupMarcos Rodrigues
 
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)Pedro Fernandes Vieira
 

Semelhante a Upload de arquivos - Laravel (20)

Tutorial DOCman em portugues
Tutorial DOCman em portuguesTutorial DOCman em portugues
Tutorial DOCman em portugues
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
Introdução ao zend framework
Introdução ao zend frameworkIntrodução ao zend framework
Introdução ao zend framework
 
Instalação DSpace 3.x Windows e Linux
Instalação DSpace 3.x Windows e LinuxInstalação DSpace 3.x Windows e Linux
Instalação DSpace 3.x Windows e Linux
 
Módulo 16 Instalação do DSpace 3.x Windows Linux
Módulo 16 Instalação do DSpace 3.x Windows LinuxMódulo 16 Instalação do DSpace 3.x Windows Linux
Módulo 16 Instalação do DSpace 3.x Windows Linux
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do Maven
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Essbase Series - Backup
Essbase Series - BackupEssbase Series - Backup
Essbase Series - Backup
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
 
Instalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsInstalação DSpace 4.x Windows
Instalação DSpace 4.x Windows
 
Instalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsInstalação DSpace 4.x Windows
Instalação DSpace 4.x Windows
 
Instalando e configurando o cobian backup
Instalando e configurando o cobian backupInstalando e configurando o cobian backup
Instalando e configurando o cobian backup
 
Aula5
Aula5Aula5
Aula5
 
Framework Yii
Framework YiiFramework Yii
Framework Yii
 
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
 

Upload de arquivos - Laravel

  • 1. Upload de arquivos Matheus Henrique Neres dos Santos com Request
  • 2. Upload de Arquivos Em uma aplicação é muito comum surgir a necessidade de fazer upload de arquivos, nesta aula iremos fazer uploads de arquivos no Laravel utilizando os recursos da classe Request, Entendendo as configurações de upload no arquivo /config/filesystems.php 2
  • 3. Upload de Arquivos Neste arquivo a primeira configuração que aparece é a “default”, que define qual “disks” de configuração de uploads que a aplicação vai manter por default (por padrão). Por default (por padrão) é ‘local’: 3 Ao deixar os dados assim com o padrão de upload como “local” no array “disks” vai pegar as configurações do array “local”:
  • 4. Upload de Arquivos ‘driver’: Como será feito o upload, se deixar “local” os arquivos ficarão armazenados na própria aplicação. ‘root’: É o diretório onde ficarão armazenados os arquivos no momento que fizer upload. O helper storage_path() aponta para o diretório storage/, e como está assim storage_path(‘app’) define que o diretório de upload será para storage/app/ 4
  • 5. Upload de Arquivos Quando for fazer o upload de algum arquivo restrito, ou até mesmo que vai disponibilizar o download através de response ou exibir apenas o item, pode deixar essa configuração. Porém se for fazer upload de imagens/arquivos que precisarão ser exibidos posteriormente em uma view por exemplo, precisa utilizar as configurações de “public”, então no “default” configure como “public”: 5 Ao fazer isso vai utilizar essas configurações de “disks”: Com essas configurações os uploads ficaram em storage/app/public
  • 6. Upload de Arquivos Qual a vantagem? Se for exibir as imagens em uma listagem na view vai ser mais simples de exibir. Não é possível exibir uma imagem que está em storage/ em uma listagem na view, só é possível exibir itens na view que estão em /public (que são o conteúdo publico de uma aplicação web (imagens, fontes, css, js)). 6
  • 7. Upload de Arquivos Como resolver? É possível através do próprio artisan criar um link simbólico de storage/app/public para dentro de public/storage, para isto faça esse comando: 7 php artisan storage:link Esse comando cria um link simbólico em public/storage que aponta para storage/app/public, ou seja, agora todos os arquivos disponíveis neste diretório estarão disponível publicamente na aplicação e agora será possível acessa-los facilmente.
  • 8. Upload de Arquivos Observação: Antes de tentar fazer o upload é importante que o formulário que será utilizado para o envio dos arquivos (upload) contenha o atributo enctype=”multipart/form-data”, exemplo: 8
  • 9. Recuperar o arquivo de upload (de formulário): Neste exemplo nosso campo de imagem tem o nome “image”, e para recuperar pode utilizar estas duas formas: 9 ou
  • 10. Recuperar o arquivo de upload (de formulário) É importante antes de fazer o upload verificar se informou o arquivo e se é um arquivo válido: 10 Verificações:
  • 11. Recuperar o arquivo de upload (de formulário) Recuperar algumas informações do arquivo: 11 Verificações: • Retorna mime type do arquivo (Exemplo image/png) • Retorna o nome original do arquivo • Retorna a extensão do arquivo • Retorna o tamanho do arquivo
  • 12. Recuperar o arquivo de upload (de formulário) Para fazer um upload de arquivos no laravel: 12 Fazendo upload: O arquivo será salvo em storage/app/public/imagens/ com um nome aleatório É possível informar também o “driver” de upload no momento de salvar:
  • 13. Recuperar o arquivo de upload (de formulário) Se quiser salvar o arquivo com um nome especial, é possível utilizar o método storeAs(): 13 Fazendo upload: A imagem será salva em storage/app/public/imagens/imagem-perfil.png Também é possível informar dinamicamente qual é o driver de armazenamento: Diretório onde será salvo Nome do arquivo Driver
  • 14. Fazendo o upload da imagem para storage/app/public/imagens/ com nome personalizado. 14 Exemplo: A imagem será salva em storage/app/public/imagens/nomeimagem.extensao
  • 15. Como criamos um link simbólico de public/storage que aponta para storage/app/public é possível exibir facilmente na view o arquivo de imagem: 15 Como exibir? <img src="{{ url("storage/imagens/imagem-perfil.png")}}" alt="imagem-perfil.png"/>
  • 16. Links adicionais para estudo e referências: • https://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/Uplo adedFile.html • https://blog.especializati.com.br/upload-de-arquivos-no-laravel-com- request/ • https://laravel.com/docs/5.6/filesystem