Vous êtes sur la page 1sur 21

+

CursoPHPAula06
BrunoFalco brunogfalcao@gmail.com

UploaddeArquivos
n Uploaddearquivos

n Copiarumarquivodeumamquinalocalpara

oservidorweb.
n Exemplos:Imagens,videos,documentos,etc.

UploaddeArquivos
n Consideraessobreoformulrio:

nDeveserdeclaradocomomtododeenvioPOST.
nConteradiretivaenctype="multipart/formdata",para

"dizer"aobrowserqueestseenviandoarquivoseno
somenteostextosdoscamposdosformulrio
nConterpelomenos1campo"file".

Formulrionaprtica

Recebendoasinformaes
Informaes
$_FILES[arquivo][name]
Onomedoarquivooriginal
$_FILES[arquivo][type]
Otipomimedoarquivo,seonavegadordisponibilizar
Ex:umaimagem gif omimeseriaimage/gif
$_FILES[arquivo][size]
Otamanhoembytesdoarquivo
$_FILES[arquivo][tmp_name]
Onometemporriodoarquivo noservidor
$_FILES[arquivo][error]
Ocdigo deerroassociadoaesteupload

Diretriodeupload
n

Osarquivosenviadospeloformulrioseroguardadosnodiretrio
temporriodoservidor,amenosqueoutrolugarsejaespecificadocoma
opoupload_tmp_dirnophp.ini.Eocaminhoenomedecadaarquivo,so
ditosna$_FILES['arquivo']['tmp_name'].

Paramoveroarquivoparaumdiretriodesejadodeveseusarafuno
move_uploaded_file()(emversesanterioresa4.0.3useafunocopy)

Funesdemanipulao
nbool chmod (string$filename,int$mode)
nTentamudaraspermissesdoarquivoespecificadodo

arquivoparaodadoem modo .
nmode:mododeseguranadoarquivo,padro0777
nExemplo:
<?chmod (/diretorio/arquivo.txt", 0777);?>
nbool file_exists (string$nomedoarquivo)
nRetorna TRUE seoarquivooudiretrioexpecificado

por nomedoarquivoexiste; FALSE casocontrrio.

Funesdemanipulao
nint unlink (string$nomedoarquivo)
nDeleta nomedoarquivo.
nbool rename (string$nomeantigo,string$novonome)
nTentarenomear$nomeantigopara$novonome.
nRetorna TRUE emcasodesucessoou

FALSE emfalhas.
nUtilizadotambmparamoverarquivo
nrename("/tmp/tmp_file.txt", "/docs/my_file.txt");

Cdigodoscript.php

Dica
n Paraacessarumnvelacimadeondeseecontrautilize../,sequer

acessarapartirdoraizutilize./
n Ex:

site
|imagens
||logo.jpg
|scripts
||upload.php
Emupload.phpodiretrioparasalvarimagensseriaescritocomo
../imagens

Exerccio
n Crieumformulrioondeumapessoadeveenviarumafotoeessa

serexibidanatela

Segurana
n Devemostermuitocuidadocomouploaddearquivospelomemo

motivoqueverificamosasinformaesinseridasemumformulrio
n Umscripsegurodeveverificarotamanhoeotipodoarquivo,por

exemplo

Checandootamanhodoarquivo

Tipodoarquivonoupload
n

Digamosquevoccrieumfilefieldondeumusurioenviaumafoto,eseele
mandaumarquivo.exe??

Devemos verificarseoarquivorealmenteumaimagem.Paraisso,voc
podeverificaraextensodonomedearquivoouotipodearquivo.

Cdigodaverificao

Segurana
n

Verificaraextensodonomedearquivonoseguro,entoomelhor
sempreverificaromimetipodoarquivo.

Paraisso,usaseentoavarivel $_FILES['arquivo']['type'] criadanoupload


deumarquivo

Nonossoexemplo,ondeaceitamosapenasimagensPNGomimetipo:
image/png

Cdigodaverificao

Nomesdosarquivos
n Definirumpadro
n Semespaosembranco,hifens,vriasletrasmaisculase

minsculas.
n Colocarunderscores(_)nolugardeespaosequetodasasletras

sejamminsculas.
n Importanteverificarseumarquivocomomesmonomejexiste.

Cdigodachecagemdonome

Exerccio
n Adicionaraoscriptdeuploaddearquivo,checagemdetamanho,

tipospermitidosesejexisteumarquivocomaquelenome;
n Porexemplo:saceitararquivosdotipojpgecomnomximo

500kb;
n Padroparanomedosarquivos:substituirespaoporunderscoree

todasasletrasminsculas.

Referncias
n [1]ManualOficialdoPHP:

http://www.php.net/manual/pt_BR/features.fileupload.php
n [2]ListaampladeMimeTypes:

http://www.arquivodecodigos.net/arquivo/ferramentas/mime_types
.php
http://www.webmastertoolkit.com/mimetypes.shtml

Vous aimerez peut-être aussi