Bom hoje ensinarei como enviar arquivos para o servidor usando a função move_uploaded_files(); do PHP.
Let's Work[]'..
Primeiramente crie uma pasta no servidor e dê permição CHMOD 777, em nosso exemplo usarei a pasta "arquivos".
Segundo, vamos criar o formulário onde conterá o campo file.
(Usarei um bem simples sendo que o assunto não se trata de formulários).
formulário.php
<form name="F1" method="post" action="enviar.php" enctype="multipart/form-data">
<input type="file" name="arquivo">
</form>
Note enctype="multipart/form-data", se não tiver isso em seu formulário ocorrerá erros na hora de enviar os arquivos para o servidor, isso informa que tem "algo a mais" a ser interpretado pelo navegador.
E por último a página que será responsável por enviar o arquivo ao servidor.
enviar.php
<?
$name = $_FILES['arquivo']['name'];
$tmpname = $_FILES['arquivo']['tmp_name'];
$caminho = "arquivos/";
$mover = move_uploaded_file($tmpname, $caminho.$name);
if($mover){
echo "<center>Arquivo enviado com sucesso!</center>";
}
?>
Explicando:
$name = $_FILES['arquivo']['name'];
*Nome real do arquivo, por exemplo, se o arquivo se chama php.exe, esse será o conteúdo da variável.
$tmpname = $_FILES['arquivo']['tmp_name'];
*Caminho para onde o arquivo temporário foi enviado, por exemplo, se seu servidor usa a pasta "E:/phptmp" (no caso um servidor Windows®), a variável terá o seguinte conteúdo "E:/phptmp/php.exe".
$caminho = "arquivos/";
*Pasta para onde o arquivo será enviado.
$mover = move_uploaded_file($tmpname, $caminho.$name);
*A função funciona da seguinte forma: primeiramente vem o caminho do arquivo temporário e em seguida o caminho para a pasta onde será feito o upload concatenado com o nome real do arquivo.
OBS: Além das variáveis globais $_FILE['name'] e $_FILE['tmp_name'], existem também $_FILE['type'], $_FILE['size'] e $_FILE['error'] adicionado no PHP 4.1 para tratar dos erros do upload. VEja a relação de erros pelo link:
http://br.php.net/manual/pt_BR/features.file-upload.errors.php .
Fonte: phplandia.net