+6

Manipulando dados de formulários com PHP – Parte 2 (Upload de Arquivos)

criado por Alfred R. Baudisch em 16/02/2004 3:34pm
Esse artigo está dividido nos seguintes tópicos:

1 - Aspectos dos formulários de Upload
2 - Manipulando com o script PHP os arquivos enviados
3 - Verificando e limitando os arquivos enviados
3.1 - Tamanho dos arquivos
3.2 - Tipo dos arquivos
3.3 - Nome dos arquivos
<hr>
1 - Aspectos dos formulários de Upload

Todo formulário de upload deve:
1 - Ser declarado com o método de envio POST.
2 - Conter a diretiva enctype="multipart/form-data", para "dizer" ao navegador que está se enviando arquivos e não somente os textos dos campos dos formulário
3 - Conter pelo menos 1 campo "file".

Isso em prática fica:

<form action="script.php" method="POST" enctype="multipart/form-data">
Seu arquivo: <input name="arquivo" type="file"><BR>
[... outros campos do formulário ...]
<input type="submit" value="Enviar">
</form>

Comentários:

Mostrando 1 - 10 de 34 comentários
Amigo não estou conseguindo, sempre cai no erro: "Não acesse esse arquivo diretamente!";

A questão é, se eu for acompanhar o seu formulario é claro que da certo.

Mais na realidade na pratica não está funcionado pois tenho uma pagina com as seguinte situação:


<form name="genericos" method="post" action="" enctype="multipart/form-data">

<label>
<span>Link PDF:</span>
<input type="text" name="link_pdf" />
</label>

<label>
<span>Upload do arquivo em PDF:</span>
<input type="file" name="up_pdf[]" class="file" />
</label>
<br /><br />

<label>
<span>Link Excel:</span>
<input type="text" name="link_excel" />
</label>

<label>
<span>Upload do arquivo em Excel:</span>
<input type="file" name="up_excel[]" class="file" />
</label>
<br /><br />

<label>
<span>Upload da Imagem Logo:</span>
<input type="file" name="up_logo[]" class="file" />
</label>

<input type="submit" name="salvar" id="salvar" value="Salvar" class="btn" />
</form>

Veja que tem 3 upload de imagem para fazer e 4 link sendo 2 em .pdf. e 2 em .xml.


Agora sou iniciante em programação então uma duvida.
Quanto vc sita "" $_FILES['arquivo'] "" a apalavra "arquivo" seria o que exatamente na minha situação, acredito que seria os ex: "" name="up_excel[]" "" ou não...

Como eu coloco esse script para fazer a minha pagina enviar uma imagem, 4 link, e 4 arquivos de documentos.

Obrigado por compartilhar.
09/11/2011 12:10pm (~5 anos atrás)

Bom eu estou com o seguinte problema eu to querendo pegar o arquivo que o usuario coloca e copiá-lo no servidor nao funciona e qndo eu vou entrar no tmp do para ver se tinha criado se quer um arquivo temporario tb nao criou?O que ta acontecendo?Alguem podia me dar um help please.
08/08/2007 8:48pm (~9 anos atrás)

Thiago Brito disse:
Cara, era o que eu precisava, porem eu preciso que dos dados do form seja cadastrado no mysql pq eh um controle de relatorios, e os pdfs vão pra uma pasta pro meu cliente acessar, e existem várias páginas, cada pdf pertence a uma pastas... meio complicado neh..

imagina assim... pdf1.pdf - pdf2.pdf - pdf3.pdf

pasta 1 - pdf2.pdf
pasta 2 - pdf1.pdf
pasta 3 - pdf3.pdf


ae qdo der o submit no form eu envio o pdf para pasta dele entendeu??

Tbm tem o casa de não ter a pasta e ela precisar ser criada...


ficou complexa a historia e ae eu parei...

Valeu desde já...
14/05/2007 12:34pm (~9 anos atrás)

f disse:
Uso o mysql aqui,,
MAnipulo o banco pelo myadmin
Como eu faria para guardar direto em um campo do meu banco de dados esse arquivo?
Qq coisa, desculpe-me a ignorância, sou novato no php.Um abraço a todos
05/04/2007 11:59pm (~9 anos atrás)

william souza disse:
O código funcionou perfeitamente no servidor windows, mas no servidor linux é preciso colocar a funcação CHMOD após de ter feito upload da imagem para o servidor para que você possa ter permissão de execução no arquivo.

chmod("/DIRETÓRIO/ARQUIVO",0777);
11/10/2005 8:35am (~11 anos atrás)

Marcelo Iwata disse:
Tutorial que ajudou bem no meu projeto.. valeu..
08/07/2005 8:20pm (~11 anos atrás)

Eu conseguir configurar direitinho, o arquivos está sendo mandado para a pasta selecionada. Mas queria que vc postasse codigo php onde os arquivos envidos seriam mostrados automaticamente numa página.

Ex: o cara mandou um arquivos para a pasta Animes, aí o arquivo enviado seria mostrado na pagina Animes do meu site automaticamente, mostrando o nome, descrição, tamanho entre outros.

Pq tem q ficar adicionando um por um é um saco, queria um automatico, pelo amor de deus me ajudeeeeemmmm
20/06/2005 7:35pm (~11 anos atrás)

Existe alguma forma de exibir o conteúdo do arquivo (foto ou conteúdo do texto) no script sem salvar no servidor????
14/04/2005 5:03pm (~11 anos atrás)

Bom dia Alfred,

já realizo upload de arquivos, no entanto, pintou uma nova necessidade, a de realizar múltiplos uploads, no entanto, não quero selecionar arquivo a arquivo e sim um diretório inteiro. Vc saberia como posso fazer isso e, claro, se é possível.

de antemão, agradeço a atenção dispensada.

Att,

Luiz Lima
04/01/2005 6:32am (~12 anos atrás)

Gastão,
Para upload não são usados nenhum módulo / extensão do PHP. É algo na engine do PHP. Que erro está obtendo?
21/12/2004 8:22am (~12 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)