Jump to content

move_uploaded_file no PHP 5.2


Etiqueta
 Share

Recommended Posts

Boa tarde,

estou a criar uma página para guardar registos na base de dados e guardar a imagem numa pasta especifica do servidor, mas a imagem não está a ser enviada para a pasta.

Tenho o seguinte código

<?php
$ID_fb = $facebook->getUser();
$Nome = $_POST['Nome'];
$Email = $_POST['Email'];
$Morada = $_POST['Morada'];
$Idade = $_POST['Idade'];
$Revendedor = $_POST['Revendedor'];
$Localidade = $_POST['Localidade'];
$Imagem = $_FILES["arquivo"]["name"];


// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'uploads/';

// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb

// Array com as extensões permitidas
$_UP['extensoes'] = array('jpg', 'png', 'gif', 'jpeg', 'JPEG');

// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = false;

// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo excede o limite';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';

// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['arquivo']['error'] != 0) {
die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]);
exit; // Para a execução do script
}

// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar

// Faz a verificação da extensão do arquivo
$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
echo "Por favor, envie arquivos com as seguintes extensões: jpg, jpeg, png ou gif";
}

// Faz a verificação do tamanho do arquivo
else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
}

// O arquivo passou em todas as verificações, hora de movê-lo para a pasta
else {
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
// Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
$nome_final = time().'.jpg';
} else {
// Mantém o nome original do arquivo
$nome_final = $_FILES['arquivo']['name'];
}


// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], "$_UP['pasta']/$nome_final")) {
// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
echo "Upload efetuado com sucesso!";
echo '<br /><a href="' . $_UP['pasta'].$nome_final . '">Clique aqui para acessar o arquivo</a>';
} else {
// Não foi possível fazer o upload, provavelmente a pasta está incorreta
echo "Não foi possível enviar o arquivo, tente novamente";
}

}

$sql = "INSERT INTO participacao(ID_fb, Nome, Email, Morada, Idade, Revendedor, Localidade, Imagem) VALUES ('{$ID_fb}', '{$Nome}', '{$Email}', '{$Morada}', '{$Idade}', '{$Revendedor}', '{$Localidade}', '{$nome_final}')";
mysql_query($sql) or die(mysql_error());
?>

Estou a usar a função move_uploaded_file para colocar a imagem na pasta. Estou a usar PHP 5.2, isso faz a diferença? Existe outro modo de fazer para a versão 5.2?

Obrigada

Edited by yoda
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.