Administra o teu Blog

Cria o teu Blog Já! Fácil e Grátis

Upload em PHP bruno-tk — 03-09-2007 GTM 11 @ 22:08

Upload em PHP


Upload em PHP
14/05/03

No exemplo a seguir você criará um formulário de upload que enviará arquivos de seu computador para o servidor. Tudo isso será feito com instruções já nativas do PHP sem a necessidade de instalar qualquer componente adicional.

Serão utilizados dois arquivos: o upload.htm e o upload.php. No upload.htm será criado o formulário de envio e no arquivo upload.php estará o código que enviará o arquivo do computador do usuário para o servidor.

upload.htm

Enviar o arquivo:


upload.php

if (copy($arquivo,"/arquivos/".$arquivo_name)){
echo("Arquivo enviado com sucesso!");
}else{
echo ("Erro no envio do arquivo!");
}
?>

Veja que no form o enctype é definido como multipart/form-data, próprio para formulário de arquivo. No código PHP é utilizado o comando copy que copia o arquivo de sua origem (no caso a variável arquivo) para o diretório arquivos. A variável $arquivo_name é utilizada para que o arquivo criado mantenha o nome original. Para que o script acima funcione é preciso habilitar a gravação do diretório /arquivos do servidor utilizando o comando chmod 777/arquivos.

Caso queria, você poderá efetuar múltiplos uploads nesse mesmo script: será necessário apenas acrescentar mais algumas linhas com o comando input no formulário e trocar o nome da variável por outro diferente. No código PHP bastará repetir o comando e alterar a variável de origem e destino.

Dica:
Para que os arquivos armazenados em seu site não sejam exibidos nos navegadores, crie um arquivo index.htm em cada diretório do seu site: desta maneira quando algum usuário digitar o endereço de uma pasta, será exibido apenas o conteúdo da página index.htm - e não a lista dos arquivos lá existentes. Você também poderá configurar as páginas de erro no próprio Apache para que não liste os arquivos dos diretórios.
Segurança:
Ao permitir que os usuário façam o upload de arquivos para o ser servidor, você deverá estar atento ao local de destino da cópia que você configurar em seu script pois como o arquivo enviado pode conter qualquer informação, um script em PHP ou qualquer outro tipo de script pode ser enviado.

Como você sabe, todos os comandos em PHP são executados diretamente no servidor e somente os resultados HTML são enviados para o computador do usuário: se o local onde ele foi armazenado no servidor tiver a possibilidade de ser acessado de qualquer computador, esse arquivo poderá ser executado e os resultados poderão ser os mais variados - de um acesso a qualquer informação confidencial ali existente até a exclusão de todos os arquivos do servidor.

Em nosso exemplo o diretório de destino é o /arquivos que pode ser acessado somente a partir do servidor - o que representa uma segurança adicional.

Do Melhor Linkk | del.icio.us

Não há Comentários »

Deixar um Comentário


<a href> <em> <blockquote> <strong> <cite> <code> <ul> <li> <dl> <dt> <dd>