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 não atirou a pedra, vai poder fazer o seu upload de arquivos – com validação e filtro de extensões e tamanho de arquivo – com o PHP! ;-)

Vamos ao que interessa:

Você vai precisar, basicamente, de duas coisas: um formulário pro usuário escolher o arquivo e um arquivo .php para receber os dados e salvar (ou não) o arquivo enviado numa pasta escolhida. Vou ensinar também a fazer um script que filtre a extensão 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 configuração padrão o limite de uploads é de 2Mb então, teste com arquivos menores.
  2. Em alguns servidores para você poder salvar um arquivo em uma pasta você precisa de permissão de usuário (também conhecido como CHMOD), é raro precisar configurar isso, mas se por obra divina o seu arquivo não 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 consideração e só se preocupar em enviar arquivos menores que 2Mb para testar a aplicação.

Vamos ao formulário HTML para o usuário escolher o arquivo a ser enviado:

<form method="post" action="recebe_upload.php" enctype="multipart/form-data">
<label>Arquivo</label>
<input type="file" name="arquivo" />
<input type="submit" value="Enviar" />
</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:

<?php

// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'uploads/';

// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb

// Array com as extensões permitidas
$_UP['extensoes'] = array('jpg', 'png', 'gif');

// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = false;

// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';

// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['arquivo']['error'] != 0) {
die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]);
exit; // Para a execução do script
}

// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar

// Faz a verificação da extensão do arquivo
$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";
}

// Faz a verificação do tamanho do arquivo
else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
}

// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
else {
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
// Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
$nome_final = time().'.jpg';
} else {
// Mantém o nome original do arquivo
$nome_final = $_FILES['arquivo']['name'];
}

// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {
// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
echo "Upload efetuado com sucesso!";
echo '<br /><a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
} else {
// Não foi possível fazer o upload, provavelmente a pasta está incorreta
echo "Não foi possível enviar o arquivo, tente novamente";
}

}

?>

Com isso você já tem um script que recebe os dados enviados pelo formulário e que coloca (ou não) o arquivo na pasta.

Eu sei que esse script pode parecer um pouco avançado pra quem tá começando, mas eu preferi fazer o “básico que todo mundo procura”. Tentei colocar o máximo de comentários e fazer uma sintaxe mais clara o possível pra que vocês 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 formulário para o PHP ele vai direto para uma pasta temporária usando um nome único e extensão .tmp (dê uma olhada no valor da variável $_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 configurações de servidores… Então qualquer dúvida é só deixar um comentário que eu tento te ajudar.

Outra coisa importante que eu provavelmente não disse aqui no blog ainda: pra qualquer coisa no PHP existem, no mínimo, três formas de se alcançar o mesmo objetivo. Então não quero que encarem os meus scripts como a verdade absoluta. Eles são só um exemplo de um script eficiente e customizável baseado na minha experiência.

Espero que tenham gostado!

Documentação Oficial:

  • Função move_uploaded_file() » Move um arquivo que foi enviado para o servidor
  • Função time() » Retorna o UNIX TIMESTAMP atual
  • Função strtolower() » Altera uma string para ficar com as letras minúsculas
  • Função array_search() » Faz uma busca entre os elementos do array

94 thoughts on “Upload de arquivos com PHP

  1. Marcelo Santos

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

  2. Daniel

    else {
    // Primeiro verifica se deve trocar o nome do arquivo
    if ($_UP['renomeia'] == true) {
    // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
    $nome_final = time().'.jpg';
    } else {
    // Mantém o nome original do arquivo
    $nome_final = $_FILES['arquivo']['name'];
    }

    Mesmo se o arquivo for png ele troca a extensão para jpg, isso não daria algum problema na imagem? Abraços.

  3. Bruno Leite

    Parabéns! Um ótimo tutorial.
    Detalhando e comentando passos, foi o melhor que encontrei pela web.

  4. Weber

    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!

  5. Emerson Santana

    Thiago muito boa a sua solução, só tenho uma dúvida dessa forma fico obrigado a enviar uma imagem sempre, e se a pessoa que estiver efetuando o cadastro não quiser colocar a imagem naquele momento?

  6. Isac

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

    Abraço!

  7. Junior Garcia

    Cara!!!! eu tava tentando e não conseguia… qnto mais eu procurava mais confuso eu ficava!!!
    valeu!!!

    sucesso e td d bom!
    Abraços

  8. Cícero Joceilton

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

  9. Renan P.

    Olá Thiago, muito bom o post, parabéns.
    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 permissão na pasta temp.

    E mesmo assim eu não 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 não aparece na pasta da aplicação… em outros casos (Arquivos muito grande) ele começa o upload mas o arquivo temp do php nem é criado, e depois de algum tempo ele reseta o upload, começa novamente até um certo momento que dá erro. Não estou pedido ajuda com relação ao sistema Ajaxplorer mas sim no PHP e no IIS, estou usando o IIS 7.5 Win 2008 R2 e PHP ultima versão liberada no site.

    Estou me esquecendo de algum tipo de configuração em algum lugar que possa estar causando esses problemas?

    Desde já Obrigado!

  10. João

    Realmente ótima explicação. Desculpe a minha burrice mas não 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, João.

  11. Thyago

    estou tentando montar um site de upload de imagens mas asim as imagens serão subistituida o.O mas o sistema é otimo e funciona muito bem :D

  12. Thyago

    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 solução me avise por email ou por aqui mesmo obrigado

  13. Felipe Carneiro

    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 extensões: jpg, png, gif, rar ou zip.

    O que pode ser este error ai amigo? AGUARDO.

  14. gustavo

    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 C:\xampp\htdocs\recebe_upload.php on line 44
    Não foi possível enviar o arquivo, tente novamente

  15. Silas

    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-uploaded-file]: 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 ”

    Ou diz q nao foi possivel conectar ao servidor.

    Ja efetuei atricuição 777 as minhas pastas, e continua com o problema. o Que pode ser.

  16. Marcio

    Olá meu caro Thiago,
    Amigo… tô tentando implementar isso, não para upload de arquivo em uma pasta, mas sim por email.
    Estou trabalhando em um Form que servirá para enviar currículo. 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 abraço e parabéns pelo excelente trabalho!

  17. jakson

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

  18. Andressa

    Olá Thiago! Excelente artigo, me ajudou muito e funciona muito bem, mesmo eu sendo bem iniciante no assunto.
    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 não entendo mto do assunto.
    Obrigada!

  19. Prado Du

    Thiago, Parabéns pelo site, extremamente útil!

    Agora estou com uma dúvida que pode ser simples. Gostaria que um email de confirmação fosse enviado junto ao anexo, é muito complicado?

  20. Monteirog12

    Thiago! Parabéns 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 não estou conseguindo. Abraços!

  21. Dj-inovacao

    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

  22. Willian Luan

    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
    Não foi possível enviar o arquivo, tente novamente

    já aconteceu com alguen

  23. www.seudescobrimento.com

    Cara, meus parabéns!! 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 informação para quem precisa aprender, além de colaborar passando o conhecimento.
    Obrigado, abraços, Isack Raid.

  24. Davi Antunes

    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

  25. Marcosrodregues

    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.

  26. Akihe

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

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

    /* ficaria “tempo'+'extensão do arquivo original' ^^ se não der certo faz isso (pode ser conflito na variavel)

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

  27. Adriano Angelo

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

    1. Mulambo

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

  28. Marcelo Maffezoli

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

  29. Thiago Belem

    Esse popup que você falou é Javascript (client-side) e o PHP é
    server-side… Não tem como fazer (a não ser que você envie e trate o upload
    via AJAX). :)

  30. Marcelo Maffezoli

    Thiago, parabéns pelo post! Realmente o melhor e mais fácil de usar e entender que eu já encontrei! =)

    Só uma coisa. Tem como ao termino do upload, ele não mostrar a mensagem em outra página, e sim com uma pop-up? Assim não precisa sair da página e quando o usuário der ok para fechar, ele já está na página novamente.

    Obrigado!

  31. Carine Monteiro

    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 extensão coloquei as permitidas (rar, zip, tar, tar.gz, etc), mas quando envio um arquivo, ele fica retornando erro na comparação da extensão, como se não fosse permitido. Abaixo trecho modificado, caso possa me ajudar.

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

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

      1. Thiago Belem

        Vocês podem trocar o if por:

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

        Lembrando que ele sempre vai pegar a última parte depois do ponto, então
        “arquivo.tar.gz” tem a extensão “gz”.

        Abs

  32. Rodrigo

    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, é necessário enviar o arquivo pra só depois mostrar a mensagem de tamanho ou extensao nao permitida?

  33. rafael

    Ola Thiago,

    tenho a intensão 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 parabéns pelo blog

  34. pL413R

    Muito bom tutorial amigo, muito bem explicado e prático funcionou direitinho para mim, estou querendo montar um sistema de upload de imagens para meu fórum baseado neste daqui

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

    sei que é feito em curl, e tem uma função interessante de adicionar uma marca d’agua, queria um igual desses acima para poder upar em localhost e remotamente

  35. Eduardo Miranda dos Santos

    Ok pessoal deu tudo certo, mas infelizmente estamos nas mãos de servidores
    se a imagem demorar a carregar o servidor da pau no processo, ai já é outra
    história, 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 não é client-side ou seja ele não trabalha do lado cliente. Alguem conhece algum outro recurso que possa ser utilizado para reduzir essa imagem dentro de uma pasta temporária para posteriormente ser enviar para o servidor?

  36. Juliano Silva

    Cara, to adorando seus artigos, comprei alguns cursos de php em vídeo 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 próprios sistemas, no inicio eu havia feito curso de dreamweaver avançado 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

  37. Charles Jefferson

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

      1. Ronny Suzin

        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 não é necessário o carregamento,
        gostaria de uma mudança 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.

        compreende meu raciocinio? obrigado aguardando resposta.

  38. Charles Jefferson

    Consegui, fiz alterações, mudei como queria.

    Tenho uma outra dúvida, me diga uma maneira fácil de fazer o seguinte:

    Tipo assim tenho um textbox onde o usuário vai digitar alguns nomes de pessoa, ao clicar no botão inserir ele joga abaixo nome dessa pessoa.

    Quero que fique assim, os nomes e a opção excluir do lado do nome:

    João
    Paulo
    Lucas
    Maria

    Pra alterar esse seu código pra fazer isso, seria muito complicado? Tem uma maneira mais fácil de se fazer isso?
    Tava pensando também em abrir um pop-up e desse pop-up voltasse ao form inicial (mas não sei fazer isso sem deixar de atualizar o form)

    1. Thiago Belem

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

  39. Charles Jefferson

    Tenta aí então…. http://www.fmt.to.gov.br/tela_upload.htm

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

    Colocar no meu form a opção da pessoa fazer upload, mas de vários 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 informações sobre sua pesquisa(arquivos de word, excel, fotos, audio, etc.)

    Então minha dúvida é na questão de fazer isso várias vezes no mesmo form.. achei alguns scripts de múltiplos arquivos, mas os que encontrei já são pré-definidos(maximo 3 ou 5), eu preciso de algo que não tenha limites, pois pode ser 1,2,3 ou 10 e que não fique aparecendo aquele monte de buttons file.

    Espero que expliquei claro… ahh e obrigado aí pela atenção.

    1. Thiago Belem

      @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.

      Não é recomendado fazer esse esquema de vários 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 são 30mb de 1 só vez. Procure fazer um upload por vez e depois volte pra tela de upload caso o usuário queira cadastrar +1 arquivo.

  40. Charles Jefferson

    Olá.. parabéns pelo blog, tenho visto ótimos conteúdos por aqui.
    Tou precisando de ajuda, vc manja um pouco de Javascript? Baixando um exemplo na net, fiz algumas alterações, só que está funcionando perfeitamente no Firefox mas no IE não… Geralmente costuma ser o contrário, não sei onde tá o erro.
    Se puder dar uma olhada pra mim…. http://10.169.3.3/tela_upload.htm

  41. Diego

    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.

    1. Thiago Belem

      @Diego
      O problema é copiar e colar um codigo que você nem sabe o que faz ou como funciona… Nunca faça 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 tópico novamente:
      “Em alguns servidores para você poder salvar um arquivo em uma pasta você precisa de permissão de usuário (também conhecido como CHMOD), é raro precisar configurar isso, mas se por obra divina o seu arquivo não estiver indo pra pasta que você definiu, tente “dar um CHMOD 777” na pasta de destino.”

  42. thiago

    O mesmo problema da Julia MAia.

    “Cara… deu quase tudo certo, apenas a validação do tamanho da imagem que não bate… coloco qualquer tamanho, por menor que seja, ele diz que está grande…
    Agradeco se puder me ajudar!
    Brigadão pelo tuto.!”

    O que pode ser?

    1. Thiago Belem

      @Thiago
      Já identifiquei um pequeno problema na definição da variável $_UP['tamanho']… É só multiplicá-la por 1024 que vai funcionar.. Atualizei o script.

  43. Wadson Helmer Favero

    Boa noite Tiago…
    muito bom seu blog.. gostei demais das informações…
    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 condição if…

    Não foi possível enviar o arquivo, tente novamente
    já verifiquei a pasta, habilitei opões da pasta uploads no servidor do terra…
    enfim…
    se for possivel me forneça uma orientação por favor…
    desde já valeu pela força…

    abraço.,

  44. Diego

    Olá, Thiago. O script estava igual ao seu tutorial. Realmente não consegui resolver (e o engraçado é que ele estava funcionando normalmente antes), então eu retirei a verificação. Deve ser o servidor, acontece umas coisas bem bizarras com o Terra.
    Obrigado pela sua resposta.
    Um abraço.

  45. Diego

    Olá, Thiago. Não sei se estou com problemas de configuração no servidor, mas acontece que o seu script, que antes estava funcionando normalmente, começou 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?
    Agradeço pela atenção.
    Diego

  46. Diego

    Thiago, parabéns.

    Sempre que preciso trabalhar com PHP fuço no seu site primeiro porque seus tutoriais realmente ajudam demais.

    Valeu. Abraço!

  47. Flávio Martins

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

    Poderia me dar um help neste problema?

    Uma observação: Não sei nada de php. Sei alguma coisa de Flash e design.

    Agradeceria também, se possível, me enviasse links de assuntos relacionados com a criação 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 atenção e bom resto de semana!

    Flávio Martins

  48. Julia Maia

    Cara… deu quase tudo certo, apenas a validação do tamanho da imagem que não bate… coloco qualquer tamanho, por menor que seja, ele diz que está grande…
    Agradeco se puder me ajudar!
    Brigadão pelo tuto.!

  49. Rosicler

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

  50. André

    Cara, sensacional o script.
    Me economizou muito tempo de filosofia pra criar uma logica de upload de arquivos.
    Parabéns.

    Valeu de novo!

Comments are closed.