Como sabemos, quando acessamos um site na verdade estamos fazendo uma requisição ao servidor que nos retorna um conteúdo HTML que o Browser reenderiza e exibe para nós a página. Então não temos qualquer acesso direto ao servidor, não podemos simplesmente copiar e colocar um foto no servidor. Então como enviar uma foto que esta na minha máquina para o servidor? Temos que fazer o upload desta foto ou deste arquivo para o servidor.
Do lado cliente, ou seja, no HTML temos que inserir um elemento para o usuário selecionar o arquivo. Observe o codigo abaixo:
<HTML>
<HEAD>
<TITLE>
</TITLE>
</HEAD>
<BODY>
<H1><CENTER>Upload de Arquivos</CENTER></H1>
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="upload.php">
Arquivo 1:<INPUT TYPE=FILE SIZE=60 NAME="FILE1"><BR>
<BR>
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
</BODY>
</HTML>
O Código acima irá exibir a página mostrada abaixo. Nela nos temos 1 caixa de upload para que possamos enviar algum arquivo para o servidor. Atente para o nome do controle: FILE1. Ele será usado em nossa super global.
Antes de qualquer coisa temos que saber que esta super global é também um array porém um array bidimensional ou uma matriz como queira. Assim temos que informar duas chaves nesta array. A primeira é o nome do controle que usamos para fazer o upload, no nosso caso FILE1, e a segunda chave seria o dado que queremos recuperar como o nome do arquivo, tamanho e etc. Abaixo temos a lista das chaves que podemos passar para nossa super global.
$_FILES['NomeDoControle']['name']
O nome original do arquivo no computador do usuário.
$_FILES['NomeDoControle']['type']
O tipo mime do arquivo, se o browser deu esta informação. Um exemplo pode ser "image/gif".
$_FILES['NomeDoControle']['size']
O tamanho, em bytes, do arquivo.
$_FILES['NomeDoControle']['tmp_name']
O nome temporário do arquivo, como foi guardado no servidor.
$_FILES['NomeDoControle']['error']
O código de erro associado a este upload de arquivo. ['error'] foi adicionado no PHP 4.2.0
Não esqueça que 'NomeDoControle' deve ser substituido pelo nome do controle HTML que vai submeter o arquivo. No nosso caso o controle seria FILE1. Agora observe como ficaria o Script upload.php.
<?php
$currentdir=getcwd();
$target_path = $currentdir ."/arquivos/".basename($_FILES['FILE1']['name']);
if (move_uploaded_file($_FILES['FILE1
']['tmp_name'], $target_path)) {
echo "O Arquivo ". basename( $_FILES['FILE1
']['name']). " foi enviado com sucesso<br><br>";
} else {
echo "Erro ao enviar o arquivo!<br><br>";
}
?>
Bem pessoal o codigo e bem simples. Usamos a super global para recuperar o nome do arquivo original e com ela montamos o caminho para onde a imagem será submetido ($target_path). Depois usamos a função move_uploaded_file para movermos o arquivo temporário para o destino final.
Pessoal eu fico por aqui, até a próxima Quick !!! Abraços.