Sie sind auf Seite 1von 28

Upload de arquivos com PHP | Thiago Belem / Blog

Page 1 of 28

$ thiagobelem thiago belembelem- > blog(); blog ();


Artigos e tutoriais sobre PHP, CakePHP, WordPress, jQuery, HTML e CSS

Upload de arquivos com PHP


Quem nunca precisou fazer um site que tenha upload de algum tipo de arquivo que atire a primeira pedra!

E hoje, voc que no atirou a pedra, vai poder fazer o seu upload de arquivos com validao e filtro de extenses e tamanho de arquivo com o PHP! Vamos ao que interessa:

Voc vai precisar, basicamente, de duas coisas: um formulrio pro usurio escolher o arquivo e um arquivo .php para receber os dados e salvar (ou no) o arquivo enviado numa pasta escolhida. Vou ensinar tambm a fazer um script que filtre a extenso do tipo de arquivo enviado e o tamanho dele. Duas coisas que voc precisa saber antes de criar o seu script de upload e pensar que ele ir funcionar:

1. No PHP com configurao padro o limite de uploads de 2Mb ento, teste com arquivos menores. 2. Em alguns servidores para voc poder salvar um arquivo em uma pasta voc precisa de permisso de usurio (tambm conhecido como CHMOD), raro precisar configurar isso, mas se por obra divina o seu arquivo no estiver indo pra pasta que voc definiu, tente dar um CHMOD 777 na pasta de destino.

Se voc estiver testando seu script localmente, pode ignorar a segunda considerao e s se preocupar em enviar arquivos menores que 2Mb para testar a aplicao. Vamos ao formulrio HTML para o usurio escolher o arquivo a ser enviado: 1 2 3 4 <form method="post" action="recebe_upload.php" enctype="multipart/form data"> <label>Arquivo</label> <input type="file" name="arquivo" /> <input type="submit" value="Enviar" />

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 2 of 28

</form>

Salve este HTML dentro de arquivo com o nome que preferir. Agora vamos criar o arquivo que ir receber os dados e cuidar de tudo pra voc Salve-o como recebe_upload.php: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 <?php //Pastaondeoarquivovaisersalvo $_UP['pasta']='uploads/'; //Tamanhomximodoarquivo(emBytes) $_UP['tamanho']=1024*1024*2;//2Mb //Arraycomasextensespermitidas $_UP['extensoes']=array('jpg','png','gif'); //Renomeiaoarquivo?(Setrue,oarquivosersalvocomo.jpgeumnome nico) $_UP['renomeia']=false; //ArraycomostiposdeerrosdeuploaddoPHP $_UP['erros'][0]='Nohouveerro'; $_UP['erros'][1]='OarquivonouploadmaiordoqueolimitedoPHP'; $_UP['erros'][2]='Oarquivoultrapassaolimitedetamanhoespecifiado noHTML'; $_UP['erros'][3]='Ouploaddoarquivofoifeitoparcialmente'; $_UP['erros'][4]='Nofoifeitoouploaddoarquivo'; //Verificasehouvealgumerrocomoupload.Sesim,exibeamensagemdo erro if ($_FILES['arquivo']['error']!=0){ die("Nofoipossvelfazeroupload,erro:<br/>" .$_UP['erros'][$_FILES ['arquivo']['error']]); exit;//Paraaexecuodoscript } //Casoscriptchegueaesseponto,nohouveerrocomouploadeoPHP podecontinuar //Fazaverificaodaextensodoarquivo $extensao =strtolower(end(explode('.',$_FILES['arquivo']['name']))); if (array_search($extensao,$_UP['extensoes'])===false){ echo "Porfavor,enviearquivoscomasseguintesextenses:jpg,pngou gif"; } //Fazaverificaodotamanhodoarquivo else if ($_UP['tamanho']<$_FILES['arquivo']['size']){ echo "Oarquivoenviadomuitogrande,enviearquivosdeat2Mb."; } //Oarquivopassouemtodasasverificaes,horadetentarmovlopara apasta else { //Primeiroverificasedevetrocaronomedoarquivo if ($_UP['renomeia']==true){ //CriaumnomebaseadonoUNIXTIMESTAMPatualecomextenso.jpg $nome_final =time().'.jpg'; }else { //Mantmonomeoriginaldoarquivo $nome_final =$_FILES['arquivo']['name'];

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 3 of 28

50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

} //Depoisverificasepossvelmoveroarquivoparaapastaescolhida if (move_uploaded_file($_FILES['arquivo']['tmp_name'],$_UP['pasta']. $nome_final)){ //Uploadefetuadocomsucesso,exibeumamensagemeumlinkparao arquivo echo "Uploadefetuadocomsucesso!"; echo '<br/><ahref="' .$_UP['pasta'].$nome_final .'">Cliqueaquipara acessaroarquivo</a>'; }else { //Nofoipossvelfazeroupload,provavelmenteapastaestincorreta echo "Nofoipossvelenviaroarquivo,tentenovamente"; } } ?>

Com isso voc j tem um script que recebe os dados enviados pelo formulrio e que coloca (ou no) o arquivo na pasta. Eu sei que esse script pode parecer um pouco avanado pra quem t comeando, mas eu preferi fazer o bsico que todo mundo procura. Tentei colocar o mximo de comentrios e fazer uma sintaxe mais clara o possvel pra que vocs entendam.

A parte que realmente faz o upload apenas o comando da linha 53 que o move_uploaded_file(). Vou explicar o nome e o uso dele: Quando voc envia um arquivo por um formulrio para o PHP ele vai direto para uma pasta temporria usando um nome nico e extenso .tmp (d uma olhada no valor da varivel $_FILES ['arquivo']['tmp_name']). Esse comando move o arquivo dessa pasta para a pasta que voc escolheu.

Sei que essa parte do PHP (upload de arquivos) uma das coisas que mais d problema por a devido as diferentes configuraes de servidores Ento qualquer dvida s deixar um comentrio que eu tento te ajudar.

Outra coisa importante que eu provavelmente no disse aqui no blog ainda: pra qualquer coisa no PHP existem, no mnimo, trs formas de se alcanar o mesmo objetivo. Ento no quero que encarem os meus scripts como a verdade absoluta. Eles so s um exemplo de um script eficiente e customizvel baseado na minha experincia. Espero que tenham gostado!

Documentao Oficial:
Funo move_uploaded_file() Move um arquivo que foi enviado para o servidor Funo time() Retorna o UNIX TIMESTAMP atual

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 4 of 28

Funo strtolower() Altera uma string para ficar com as letras minsculas Funo array_search() Faz uma busca entre os elementos do array

Compartilhe: Curtir isso:

20

Tweet

Curtir

53

Gosto
Be the first to like this.

This entry was posted in PHP, Tutoriais on 13 de maro de 2009 [http://blog.thiagobelem.net/upload-de-arquivos-com-php/] by Thiago Belem.

About Thiago Belem


Desenvolvedor a mais de 10 anos, trabalha como freelancer criando sites, sistemas e portais utilizando PHP, MySQL, CakePHP, WordPress e jQuery.

View all posts by Thiago Belem

94 thoughts on Upload de arquivos com PHP

RBShoT
5 de julho de 2013 at 13:37

Parabns me ajudou muito.. fiz uma adaptaes ao meu caso mas t muito bom mesmo.

Marcelo Santos
5 de julho de 2013 at 8:09

Usei esse php pra enviar arquivos do meu celular para o computador,mas precisei enviar arquivos maiores que 2Mb. Ento eu mudei o tamanho na linha 7 de 2Mb para 8M (exemplo) e fui no meu arquivo php.ini e alterei tambm de 2Mb para 8M (upload_max_filesize = 8M). Aps reiniciar o servidor ficou tudo ok.

Daniel

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 5 of 28

4 de julho de 2013 at 11:51 else{ //Primeiroverificasedevetrocaronomedoarquivo if($_UP['renomeia']==true){ //CriaumnomebaseadonoUNIXTIMESTAMPatualecomextenso.jpg $nome_final=time().'.jpg'; }else{ //Mantmonomeoriginaldoarquivo $nome_final=$_FILES['arquivo']['name']; }

Mesmo se o arquivo for png ele troca a extenso para jpg, isso no daria algum problema na imagem? Abraos.

Bruno Leite
28 de junho de 2013 at 11:44

Parabns! Um timo tutorial. Detalhando e comentando passos, foi o melhor que encontrei pela web.

fbaixo
3 de junho de 2013 at 15:11

S quero agradecer pelo seu script, muito bom!

Abrao

Weber
18 de maio de 2013 at 10:40

Muito bom mesmo o mais simples, funcional e organizado que j encontrei at hoje.. e bem simples de fazer melhorias de acordo com suas necessidades.. parabens!

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 6 of 28

BRUNO BORGES RUIZ


11 de maio de 2013 at 0:19

Muito Bom!

Emerson Santana
6 de maio de 2013 at 16:38

Thiago muito boa a sua soluo, s tenho uma dvida dessa forma fico obrigado a enviar uma imagem sempre, e se a pessoa que estiver efetuando o cadastro no quiser colocar a imagem naquele momento?

Eliezer dos Santos Barbosa Capoto


2 de maio de 2013 at 17:00

Ou vlw mesmo estou fazendo meu tcc em base no facebook, estou criando um facebook para a minha escola, chat ta m foda e com esse seu esquema posso colocar para os usuarios postarem oq quiserem

Isac
8 de novembro de 2011 at 4:12

Orra, muito bom e muito simples! Queria deixar a idia de se fazer um post com o PHP verificando o tamanho da foto em pixels (altura e largura)! Abrao!

golf cubs
31 de outubro de 2011 at 16:43

You couldnt be more on the level

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 7 of 28

Junior Garcia
28 de outubro de 2011 at 21:41

Cara!!!! eu tava tentando e no conseguia qnto mais eu procurava mais confuso eu ficava!!! valeu!!!

sucesso e td d bom! Abraos

Poliana
27 de outubro de 2011 at 18:06

Excelente! Sou iniciante e deu tudo certo..parabns =)

Ccero Joceilton
26 de outubro de 2011 at 20:12

Com este script da pra fazer upload de qualquer tipo de arquivo? Tipo um vdeo, um texto.txt, pdf, swf?

Renan P.
26 de outubro de 2011 at 8:42

Ol Thiago, muito bom o post, parabns. Ser que voc conseguiria me ajudar, estou configurando o Ajaxplorer (http://www.ajaxplorer.info/ ) um File Manager 100% Web e em PHP. O problema est bem na parte de upload, j configurei o PHP com os comandos: memory_limit = 256M post_max_size = 500M upload_max_filesize = 500M default_socket_timeout = 60 upload_tmp_dir = D: \ TempDown // O Grupo IIS_Users tem total permisso na pasta temp. E mesmo assim eu no consigo mandar arquivos com mais de 15MB geralmente, alguns ele manda sem problema, outros como por exemplo, ele cria o arquivo na pasta temp e quando o upload termina ele some e no aparece na pasta da aplicao em outros casos (Arquivos muito grande) ele comea o upload mas o arquivo temp do php nem criado, e depois de algum tempo ele reseta o upload, comea novamente at um certo momento que d erro. No estou

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 8 of 28

pedido ajuda com relao ao sistema Ajaxplorer mas sim no PHP e no IIS, estou usando o IIS 7.5 Win 2008 R2 e PHP ultima verso liberada no site.

Estou me esquecendo de algum tipo de configurao em algum lugar que possa estar causando esses problemas?

Desde j Obrigado!

mesothelioma
25 de outubro de 2011 at 0:22

This makes perfect sense!!!

Joo
19 de outubro de 2011 at 16:57

Realmente tima explicao. Desculpe a minha burrice mas no consegui entender em qual momento o script testa o tamanho do upload, sei que posso configurar para que ele aceite arquivos maiores, mas gostaria de entender em que momento ele compara o tamanho do upload com o configurado no $up? Grato, Joo.

Joo
21 de outubro de 2011 at 19:42

Haha, no tinha lido com a devida ateno, j encontrei, deixa pra l..

Thyago
4 de outubro de 2011 at 20:27

estou tentando montar um site de upload de imagens mas asim as imagens sero subistituida o.O mas o sistema otimo e funciona muito bem

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 9 of 28

Thyago
4 de outubro de 2011 at 20:25

Ol , Esse upload Bom mas eu Tenho um asim jah mas se uma pessoa tiver o mesmo nome de imagem essa imagem subistituida se tiver soluo me avise por email ou por aqui mesmo obrigado

Felipe Carneiro
4 de outubro de 2011 at 13:46

Aguardando

Felipe Carneiro
4 de outubro de 2011 at 13:45

Thiago Belem,

Mano fiz tudo certinho liberei arquivos .rar e .zip, e liberei o tamanho dos arquivos para 500 MB maz. Mas so que eu coloco um .rar de 3 MB ele entra certinho e quando eu colocar um .rar de 60 MB ele da esse error: Por favor, envie arquivos com as seguintes extenses: jpg, png, gif, rar ou zip.

O que pode ser este error ai amigo? AGUARDO.

gustavo
26 de setembro de 2011 at 0:13

Testei e ocorreu este erro

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\recebe_upload.php on line 25 Warning: move_uploaded_file(uploads/Lighthouse.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\xampp\htdocs\recebe_upload.php on line 44

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move C:\xampp\tmp\phpFA6E.tmp to uploads/Lighthouse.jpg in

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 10 of 28

C:\xampp\htdocs\recebe_upload.php on line 44 No foi possvel enviar o arquivo, tente novamente

Eduardo
24 de setembro de 2011 at 10:28

Melhor s refazendo o mesmo! Parabns cara!

Wellington Spock
24 de agosto de 2011 at 6:37

E ae Thiago! Olha, est dando esse erro aqui! : Por favor, envie arquivos com as seguintes extenses: jpg, png ou gif

mas fiz tudo certinho!

George Lucas Bentes


13 de agosto de 2011 at 14:32

Deus te abenoe!! Thiago Belem!

Silas
10 de agosto de 2011 at 15:37

Thiago, boa tarde, Estou com o seguinte problema: Localmente: Localhost, funciona legal (envia o arquivo pra pasta td ok) mas quando hospedo (uolhost) ele da erro. PHP Warning: move_uploaded_file(Arquivos_uploads/Lighthouse.jpg) [function.move-uploadedfile]: failed to open stream: Permission denied in E:\home\linoartvis1\Web\recebe_upload_3.php on line 170 PHP Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move C:\Users\TEMPUO~1.695\AppData\Local\Temp\php4B82.tmp to Arquivos_uploads/Lighthouse.jpg in E:\home\linoartvis1\Web\recebe_upload_3.php on line 170

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 11 of 28

Ou diz q nao foi possivel conectar ao servidor. Ja efetuei atricuio 777 as minhas pastas, e continua com o problema. o Que pode ser.

Tiago Faria Bicalho


9 de agosto de 2011 at 17:42

Muito Bom.. Funcionou perfeitamente. Meus parabns pela iniciativa.

Marcos Rodrigues
3 de julho de 2011 at 12:29

Genial cara, deu uma grande ajuda, parabns!

Marcio
8 de junho de 2011 at 13:15

Ol meu caro Thiago, Amigo t tentando implementar isso, no para upload de arquivo em uma pasta, mas sim por email. Estou trabalhando em um Form que servir para enviar currculo. S que a parte de enviar por email depois me enrolou todo por causa da linha 53. C pode me dar um help a respeito disso? Forte abrao e parabns pelo excelente trabalho!

Fernando
10 de maio de 2011 at 11:17

Thiagooo

timo o post! timas dicaas

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 12 of 28

Valeww meu..

jakson
9 de maio de 2011 at 13:15

UMA PERGUNTA. Porque no upload de um arquivo maior que 100kb o servidor da error 500 e no grava e muito menos carrega o arquivo para pasta especificada?

Thiago Belem

Post author

12 de maio de 2011 at 12:08

Alguma m configurao do seu servidor

Eduardo
2 de maio de 2011 at 19:19

Thiago, boa noite ! Parabns pelo artigo, funciona perfeitamente !

Um abrao,

Edu Brasil

Israel
29 de abril de 2011 at 12:36

Tem como colocar uma barra de progresso ?

Andressa
20 de abril de 2011 at 14:39

Ol Thiago! Excelente artigo, me ajudou muito e funciona muito bem, mesmo eu sendo bem iniciante no assunto.

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 13 of 28

Eu gostaria de uma dica para fazer o seguinte: alterar o nome de todos os arquivos salvos mais ou menos assim nome_original+data/hora+.extensao. Vc poderia me ajudar? At tentei mexer em algumas coisas mas no entendo mto do assunto. Obrigada!

Prado Du
30 de novembro de 2010 at 10:32

Thiago, Parabns pelo site, extremamente til! Agora estou com uma dvida que pode ser simples. Gostaria que um email de confirmao fosse enviado junto ao anexo, muito complicado?

Monteirog12
19 de novembro de 2010 at 11:06

Thiago! Parabns pelo seu tutorial! Estou utilizando aqui na empresa e me surpreendeu! Agora, tem como voc me explicar um pouco sobre o tamanho do arquivo? Estou tentando aumentar para aceitar arquivos at 10MB mas no estou conseguindo. Abraos!

Asd
10 de novembro de 2010 at 0:43

PERFEITO!!! show de bola euq ue naum sou programador fiz funfar powerSANDRUS MARCELLUS

Dj-inovacao
7 de novembro de 2010 at 3:25

Thiago , excelente seu trabalho ! estou usando seu sistema ai de cima . e preciso saber , qual linha colocar pra ele enviar arq. mp3 acima de 2MB , como vc falou l. por favor amigo , me ajuda !

bruno charpinel

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 14 of 28

Willian Luan
5 de novembro de 2010 at 12:48

Cara Muito bom seu tutorial, mais estou com um poblema, aqui no local host do meu computador o codigo funciona perfeitamente, mais quando eu hospedo ele junto ao meu site ele para de funcionar d o seguinte erro

Warning: move_uploaded_file(fotos/cori.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/voltarel/public_html/recebe_upload.php on line 53 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move /tmp/phpGvb1Wo to fotos/cori.jpg in /home/voltarel/public_html/recebe_upload.php on line 53 No foi possvel enviar o arquivo, tente novamente

j aconteceu com alguen

Thiago Belem
5 de novembro de 2010 at 12:50

Voc precisa dar permisso de escrita pra pasta de upload.

www.seudescobrimento.com
4 de novembro de 2010 at 20:20

Cara, meus parabns!! Voc um dos bons programadores que existem no Mundo! Eu j tenho esse conhecimento, sobre o que voc falou no artigo, mas me admira muito a forma simples de como voc coloca a informao para quem precisa aprender, alm de colaborar passando o conhecimento. Obrigado, abraos, Isack Raid.

Login
16 de outubro de 2010 at 23:18

Noma 200.

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 15 of 28

Davi Antunes
11 de outubro de 2010 at 19:20

Boa dica!!! Me ajudou em um script no qual preciso comparar strings de um arquivo pr selecionado com registros na base de dados!!

Obrigado!! Davi

Edson Sacramento
7 de outubro de 2010 at 17:52

Cara, muito booommm!!! Valeu pela ajuda!!!

Marta
6 de outubro de 2010 at 20:28

pouts eu te amo man!! te amooooooooo

Marcosrodregues
4 de setembro de 2010 at 19:49

eu queria um script um php que eviasse arquivos de at 20GB para uma pasta dentro do servidor com o nome da pasta que vai receber os aquivos seja download se voce conseguir porfavor envie um e-mail para marcosrodregues@yahoo.com.br e diga quanto custa que eu pago. mais tem que funcionar.

Vininewday
4 de setembro de 2010 at 1:45

Excelente, ra o que realmente Eu procurava. Muito Obrigado amigo.

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 16 of 28

Akihe
3 de agosto de 2010 at 11:48

/* $nome_final = time().'.jpg'; ^^ aqui o motivo substitui para: */

$nome_final = time().''.$_FILES['arq'] ['type'];

/* ficaria tempo'+'extenso do arquivo original' ^^ se no der certo faz isso (pode ser conflito na variavel)

$tipo=$_FILES['arq'] ['type']; $nome_final = time().''.$tipo; */

Thiago Belem
27 de julho de 2010 at 12:25

Infelizmente, quanto a isso, no tenho o que recomendar..

Adriano Angelo
27 de julho de 2010 at 0:17

tio artigo, fucionou 100% aqui! J pesquisei,j mexi, mas no consegui fazer manter a mesma extensao que a imagem tiha anteriormente, alguem poderia ajudar?

Mulambo
19 de setembro de 2010 at 22:09

Cara no tenho certeza, mas olha a lin 46 46 $nome_final = time()..jpg; t salvando todas as imgs em jpg, s mudar ali!

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 17 of 28

Marcelo Maffezoli
27 de julho de 2010 at 0:55

Thiago, obrigado pela resposta! fcil fazer isso via Ajax? Tem algum sistem/script que vc recomende? Obrigado!

Thiago Belem
20 de julho de 2010 at 1:47

Esse popup que voc falou Javascript (client-side) e o PHP server-side No tem como fazer (a no ser que voc envie e trate o upload via AJAX).

Marcelo Maffezoli
20 de julho de 2010 at 0:37

Thiago, parabns pelo post! Realmente o melhor e mais fcil de usar e entender que eu j encontrei! =) S uma coisa. Tem como ao termino do upload, ele no mostrar a mensagem em outra pgina, e sim com uma pop-up? Assim no precisa sair da pgina e quando o usurio der ok para fechar, ele j est na pgina novamente.

Obrigado!

Carine Monteiro
7 de julho de 2010 at 17:56

Thiago,

Obrigado pelo post, foi o melhor upload de arquivo que j encontrei na net, bem explicativo, estou com apenas um problema. meu sistema faz upload de arquivos compactados, no array de extenso coloquei as permitidas (rar, zip, tar, tar.gz, etc), mas quando envio um arquivo, ele fica retornando erro na comparao da extenso, como se no fosse permitido. Abaixo trecho modificado, caso possa me ajudar.

// Array com as extenses permitidas $_UP['extensoes'] = array('rar', 'zip', 'tar', 'tar.gz', 'bz2');

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 18 of 28

$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name']))); if (array_search($extensao, $_UP['extensoes']) === false) { echo Por favor, envie arquivos com as seguintes extenses: rar, zip, tar, tar.gz, bz2; }

Fernando
9 de dezembro de 2010 at 16:58

Ol! primeiramente, parabns pelo tutorial!! Eu tambm estou com o mesmo problema! se puder responder tambm para fernando@efikaweb.com eu ficarei grato. abrao;

Thiago Belem
9 de dezembro de 2010 at 17:04

Vocs podem trocar o if por:

if (!in_array($extensao, $_UP['extensoes']))

Lembrando que ele sempre vai pegar a ltima parte depois do ponto, ento arquivo.tar.gz tem a extenso gz. Abs

Thiago Belem
23 de junho de 2010 at 20:50

Infelizmente no Rogrido O servidor (Apache) no tem como saber o tamanho do seu upload antes de receber todo o arquivo.

Rodrigo
14 de junho de 2010 at 0:24

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 19 of 28

Vc sabe me dizer se o arquivo carregado antes de verificar a extensao e/ou tamanho? Imagine q vc est enviando um arquivo de 5 ou 8 Mb, necessrio enviar o arquivo pra s depois mostrar a mensagem de tamanho ou extensao nao permitida?

rafael
31 de maio de 2010 at 19:51

Ola Thiago, tenho a intenso de salvar a imagem/foto com o tamanho normal, e com o tamanho reduzido (thumb). como faria para isso? tem como fazer no upload, ou tenho q mandar a imagem, e depois copia-l?

obrigado e parabns pelo blog

Thiago Belem
1 de junho de 2010 at 11:38

@Rafael Existem tutoriais aqui no blog de redimensionamento de fotos com PHP.. Use a busca.

ellen
12 de maio de 2010 at 20:30

Parabns!! tima explicao!! Salvou a minha vida hehe Abraos

pL413R
3 de maio de 2010 at 7:19

Muito bom tutorial amigo, muito bem explicado e prtico funcionou direitinho para mim, estou querendo montar um sistema de upload de imagens para meu frum baseado neste daqui

http://www.bestuniom.net/postertool/

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 20 of 28

sei que feito em curl, e tem uma funo interessante de adicionar uma marca dagua, queria um igual desses acima para poder upar em localhost e remotamente

Lucas Moreira
29 de janeiro de 2010 at 20:35

Thiago, parabns pelo artigo! Valeu!

Eduardo Miranda dos Santos


21 de janeiro de 2010 at 16:18

Ok pessoal deu tudo certo, mas infelizmente estamos nas mos de servidores se a imagem demorar a carregar o servidor da pau no processo, ai j outra histria, o problema que o PHP primeiro carrega essa imagem para o servidor e depois ele reduz, o que eu particulamente acho errado, essa imagem deveria ser tratada dentro de uma pasta temp da maquina do cliente utilizando os recursos da mesma, e depois sim j reduzida e muito mais leve, enviada para o servidor. O PHP no client-side ou seja ele no trabalha do lado cliente. Alguem conhece algum outro recurso que possa ser utilizado para reduzir essa imagem dentro de uma pasta temporria para posteriormente ser enviar para o servidor?

Juliano Silva
18 de novembro de 2009 at 3:10

Cara, to adorando seus artigos, comprei alguns cursos de php em vdeo aulas na web e to estudando a fundo as coisas, quero me tornar programador php =), e tipo, to a mais ou menos 5 meses estudando j crio meus prprios sistemas, no inicio eu havia feito curso de dreamweaver avanado que tinha junto php mas num era o que eu queria eu quero aprender a fazer as coisas na unha, e com os novos cursos que eu comprei mais o seu blog eu to aprendendo isso valew

Tobias Tromm
14 de novembro de 2009 at 23:48

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 21 of 28

Teria como ao fazer o Upload do arquivo renomear ele mas no tirar a extenso?

Thiago Belem
15 de novembro de 2009 at 14:08

@Tobias Tromm s voc prestar ateno nas linhas 44~50. Abraos

Charles Jefferson
18 de agosto de 2009 at 21:15

Eu s preciso salvar os nomes finais, os que ele ta digitando e apagando no Assim que ele terminar de adicionar, qdo clicar em enviar ele vai registrar os nomes no BD

Thiago Belem
18 de agosto de 2009 at 22:40

@Charles Ento use apenas JavaScript para criar mais campos e depois salve com o PHP.

Ronny Suzin
31 de agosto de 2010 at 13:19

Ol, sou iniciante nesta area, mas utilizei no meu sistema aki e fiz alguns ajustes,

s que estou precisando fazer mais um ajuste, no caso seria assim,

tenho no mesmo form, varias partes aonde se carregam as imagens, mas no necessrio o carregamento, gostaria de uma mudana no script desta forma: - Se no form for carregado a imagem, assim enviar e mostar a mesma; - Mas se nao for carregada a imagem, apenas deixar em branco.

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 22 of 28

compreende meu raciocinio? obrigado aguardando resposta.

Charles Jefferson
18 de agosto de 2009 at 17:46

Consegui, fiz alteraes, mudei como queria.

Tenho uma outra dvida, me diga uma maneira fcil de fazer o seguinte: Tipo assim tenho um textbox onde o usurio vai digitar alguns nomes de pessoa, ao clicar no boto inserir ele joga abaixo nome dessa pessoa.

Quero que fique assim, os nomes e a opo excluir do lado do nome:

Joo Paulo Lucas Maria

Pra alterar esse seu cdigo pra fazer isso, seria muito complicado? Tem uma maneira mais fcil de se fazer isso? Tava pensando tambm em abrir um pop-up e desse pop-up voltasse ao form inicial (mas no sei fazer isso sem deixar de atualizar o form)

Thiago Belem
18 de agosto de 2009 at 19:46

@Charles Voc vai precisar fazer isso com JavaScript e PHP (se quiser salvar a lista enquanto o usurio vai adicionando e removendo) pra isso voc vai precisar usar AJAX.

Charles Jefferson
13 de agosto de 2009 at 18:03

Tenta a ento. http://www.fmt.to.gov.br/tela_upload.htm

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 23 of 28

um site do governo, sou func. pblico e tou precisando de fazer algo do tipo veja (http://www.easyalgo.com/examples/eaflashupload/simpleupload.html )

Colocar no meu form a opo da pessoa fazer upload, mas de vrios arquivos pra poder guardar no registro que ele vai cadastrar.

O que tou querendo um sistema de cadastro de trabalho cientifico, onde a pessoa vai cadastrar uma pesquisa, s que nessa pesquisa ele vai anexar ao registro todas as informaes sobre sua pesquisa(arquivos de word, excel, fotos, audio, etc.)

Ento minha dvida na questo de fazer isso vrias vezes no mesmo form.. achei alguns scripts de mltiplos arquivos, mas os que encontrei j so pr-definidos(maximo 3 ou 5), eu preciso de algo que no tenha limites, pois pode ser 1,2,3 ou 10 e que no fique aparecendo aquele monte de buttons file. Espero que expliquei claro ahh e obrigado a pela ateno.

Thiago Belem
13 de agosto de 2009 at 18:28

@Charles Infelizmente vai ter que ficar aparecendo o monte de buttons Voc pode ir adicionando de um em um (sem processar o upload) usando JavaScript para criar novos input fyle e depois usar o foreach no PHP para processar todos os uploads.

No recomendado fazer esse esquema de vrios uploads de uma vez pois voc vai precisar configurar o servidor pra ele aguentar toda essa carga, afinal, se voc enviar 10 arquivos de 3mb so 30mb de 1 s vez. Procure fazer um upload por vez e depois volte pra tela de upload caso o usurio queira cadastrar +1 arquivo.

Charles Jefferson
13 de agosto de 2009 at 15:02

Ol.. parabns pelo blog, tenho visto timos contedos por aqui. Tou precisando de ajuda, vc manja um pouco de Javascript? Baixando um exemplo na net, fiz algumas alteraes, s que est funcionando perfeitamente no Firefox mas no IE no Geralmente costuma ser o contrrio, no sei onde t o erro. Se puder dar uma olhada pra mim. http://10.169.3.3/tela_upload.htm

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 24 of 28

Thiago Belem
13 de agosto de 2009 at 15:22

@Charles O endereo que voc me passou um IP interno de rede Seria bom se voc falasse qual o problema e o que voc est tentando fazer.

Diego
6 de agosto de 2009 at 17:41

estou tendo alguns problemas, na hora de enviar um arquivo retorna essas mensagens:

Warning: move_uploaded_file(uploads/tracert.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/a6958900/public_html/upload5/recebe_upload.php on line 53 e

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move /tmp/phpFHfX9z to uploads/tracert.jpg in /home/a6958900/public_html/upload5/recebe_upload.php on line 53

apenas copiei o que esta la em cima, nao alterei nenhuma linha.

Thiago Belem
6 de agosto de 2009 at 20:18

@Diego O problema copiar e colar um codigo que voc nem sabe o que faz ou como funciona Nunca faa isso a mesma coisa que voc sair repetindo uma frase em outra lingua sem saber o que ela significa.. vc pode ter problemas Leia o tpico novamente: Em alguns servidores para voc poder salvar um arquivo em uma pasta voc precisa de permisso de usurio (tambm conhecido como CHMOD), raro precisar configurar isso, mas se por obra divina o seu arquivo no estiver indo pra pasta que voc definiu, tente dar um CHMOD 777 na pasta de destino.

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 25 of 28

thiago
3 de agosto de 2009 at 16:19

O mesmo problema da Julia MAia. Cara deu quase tudo certo, apenas a validao do tamanho da imagem que no bate coloco qualquer tamanho, por menor que seja, ele diz que est grande Agradeco se puder me ajudar! Brigado pelo tuto.!

O que pode ser?

Thiago Belem
4 de agosto de 2009 at 2:48

@Thiago J identifiquei um pequeno problema na definio da varivel $_UP['tamanho'] s multiplic -la por 1024 que vai funcionar.. Atualizei o script.

Wadson Helmer Favero


1 de agosto de 2009 at 1:51

Boa noite Tiago muito bom seu blog.. gostei demais das informaes porem preciso da sua ajuda fiz tudo certinho s que na hora de mover para a pasta uploads no meu servidor terra ele exibe o erro da condio if No foi possvel enviar o arquivo, tente novamente j verifiquei a pasta, habilitei opes da pasta uploads no servidor do terra enfim se for possivel me fornea uma orientao por favor desde j valeu pela fora abrao.,

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 26 of 28

Thiago Belem
1 de agosto de 2009 at 2:42

@Wadson D uma olhada nesse outro artigo meu sobre o assunto, talvez fique mais fcil de entender como o Upload funciona: Upload de Arquivos Como tudo funciona

Diego
17 de julho de 2009 at 20:49

Ol, Thiago. O script estava igual ao seu tutorial. Realmente no consegui resolver (e o engraado que ele estava funcionando normalmente antes), ento eu retirei a verificao. Deve ser o servidor, acontece umas coisas bem bizarras com o Terra. Obrigado pela sua resposta. Um abrao.

Diego
14 de julho de 2009 at 21:03

Ol, Thiago. No sei se estou com problemas de configurao no servidor, mas acontece que o seu script, que antes estava funcionando normalmente, comeou a enfrentar os erros que a Julia mencionou acima (coloco qualquer tamanho, por menor que seja, ele diz que est grande). Voc tem ideia do que pode ser? Agradeo pela ateno. Diego

Thiago Belem
15 de julho de 2009 at 3:32

@Diego Verifica se voc est usando o script corretamente.. Verifica se a linha 37 est correta. Abraos

Diego
11 de julho de 2009 at 15:59

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 27 of 28

Thiago, parabns. Sempre que preciso trabalhar com PHP fuo no seu site primeiro porque seus tutoriais realmente ajudam demais.

Valeu. Abrao!

Flvio Martins
27 de maio de 2009 at 19:05

Opa, muito bacana seu esquema de up-load. Estou nesse momento, h dias, procurando alguma forma de enviar imagens pro servidor, e atravs do php, gerar um xml, que ser lido pelo flash.

Poderia me dar um help neste problema? Uma observao: No sei nada de php. Sei alguma coisa de Flash e design.

Agradeceria tambm, se possvel, me enviasse links de assuntos relacionados com a criao de um esquema que administrasse um site, enviando fotos, textos e links pra tudo ser montado num xml, e eu ler este arquivo no flash. Muito obrigado pela ateno e bom resto de semana!

Flvio Martins

Thiago Belem
5 de abril de 2009 at 12:54

@Julia Havia um errinho que j foi ajustado.

Julia Maia
5 de abril de 2009 at 3:42

Cara deu quase tudo certo, apenas a validao do tamanho da imagem que no bate coloco qualquer tamanho, por menor que seja, ele diz que est grande

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Upload de arquivos com PHP | Thiago Belem / Blog

Page 28 of 28

Agradeco se puder me ajudar! Brigado pelo tuto.!

Rosicler
20 de maro de 2009 at 14:03

Muito legal seu script, mas gostaria de saber mais uma coisa, posso usar o mesmo script para fazer a atualizao dos dados?

Andr
14 de maro de 2009 at 16:43

Cara, sensacional o script. Me economizou muito tempo de filosofia pra criar uma logica de upload de arquivos. Parabns. Valeu de novo!

Comments are closed.

http://blog.thiagobelem.net/upload-de-arquivos-com-php/

14/03/2014

Das könnte Ihnen auch gefallen