Já criei diversas aplicações que permitiam aos administradores enviar ficheiros para o próprio site.
Uma vez que permitir a personalização dos utilizadores sobre este assunto, tornou-se cada vez mais e mais importante, pensei em mostrar como é fácil utilizar o upload de ficheiros com PHP.

Formulário XHTML

<form action="upload-ficheiro.php" enctype="multipart/form-data" method="post">
	Imagem:
<input name="imagem" size="25" type="file" />
<input name="submit" type="submit" value="Enviar" />
</form>

Vais precisar de utilizar o valor “multipart/form-data” para a propriedade “enctype” no formulário.
E obviamente, vais precisar também de pelo menos um campo para o input do tipo de ficheiro.
A acção (action) do formulário, deve chamar o ficheiro que contém o código abaixo:

//Se for feito, enviar ficheiro...
if($_FILES['imagem']['nome'])
{
	//Se não ocorrer erros...
	if(!$_FILES['imagem']['error'])
	{
		//Agora é tempo de modificar-mos o nome do ficheiro e de o validar-mos
		$novo_nome = strtolower($_FILES['imagem']['nome_temporario']); //renomeia o ficheiro
		if($_FILES['imagem']['tamanho'] > (1024000)) //Não pode ser maior que 1 MB
		{
			$ficheiro_valido = false;
			$mensagem= 'Oops!  Ficheiro demasiado grande.';
		}

		//Se o ficheiro passar o teste
		if($ficheiro_valido)
		{
			//Mover o ficheiro para onde queremos que ele fique
			mover_ficheiro_para($_FILES['imagem']['nome_temporario'], 'uploads/'.$novo_nome);
			$mensagem= 'Parabens! Ficheiro aceite.';
		}
	}
	//Se ocorrer um erro...
	else
	{
		$mensagem= 'Ooops! O teu upload provocou o seguinte erro:  '.$_FILES['imagem']['error'];
	}
}

//you get the following information for each file:
$_FILES['field_name']['nome']
$_FILES['field_name']['tamanho']
$_FILES['field_name']['type']
$_FILES['field_name']['nome_temporario']

Os comentários no código acima, descreve a forma como o processo funciona, vou agora, apenas mencionar algumas notas sobre o upload em PHP:

  • Muitos servidores de hospedagem compartilhada permitem um tamanho máximo muito baixo para o ficheiro a enviar. Se pretendemos permitir ficheiros maiores, devemos considerar um servidor dedicado ou virtual.
  • Para ajustar-mos o tamanho do ficheiro a enviar, modificamos o valor da variável “upload_max_filesize” do ficheiro php.ini. Também podemos ajustar esse valor, utilizando a função ini_set() do PHP.
  • Certifica-te de fazer diversas validações do ficheiro, quando for permitido aos utilizadores fazerem upload de ficheiros.

    Porquê?

    Permitir que um utilizador consiga enviar um ficheiro .php para o servidor, é algo que não é aconselhável.


Muito FracoFracoRazoávelBomMuito Bom (1 votos, média: 5,00 num total de 5)
Loading ... Loading ...