É o seguinte. Eu tenho um código que envia arquivos para o servidor. Funciona perfeitamente, mas surgiu uma necessidade. Usando sessão, quero que cada usuário tenha sua própria pasta e que seus arquivos enviados cheguem na pasta escolhida. Também uso Mysql para listar os nomes dos arquivos, mas nessa parte já está tudo certo. O problema mesmo está no momento em que eu tento pegar o nome da pasta para mover o arquivo e salvar no servidor.
Sabendo que o formulário do arquivo anterior envia no method post o valor do login do usuário.
O problema está nas primeiras linhas: $_UP['pasta'] = $titulo/';
Se eu escrever qualquer nome no lugar dessa variável título, ele envia o arquivo para uma pasta com o mesmo nome. Eu queria que ele enviasse o arquivo para uma pasta com o mesmo nome resgatado pela variável. Para ver o a página precisa estar cadastrado.
Pergunta
jefponte
É o seguinte. Eu tenho um código que envia arquivos para o servidor. Funciona perfeitamente, mas surgiu uma necessidade. Usando sessão, quero que cada usuário tenha sua própria pasta e que seus arquivos enviados cheguem na pasta escolhida. Também uso Mysql para listar os nomes dos arquivos, mas nessa parte já está tudo certo. O problema mesmo está no momento em que eu tento pegar o nome da pasta para mover o arquivo e salvar no servidor.
Sabendo que o formulário do arquivo anterior envia no method post o valor do login do usuário.
O problema está nas primeiras linhas: $_UP['pasta'] = $titulo/';
Se eu escrever qualquer nome no lugar dessa variável título, ele envia o arquivo para uma pasta com o mesmo nome. Eu queria que ele enviasse o arquivo para uma pasta com o mesmo nome resgatado pela variável. Para ver o a página precisa estar cadastrado.
Página de cadastro:
http://www.gcsufc.com.br/login.php
Página do formulário de envio de arquivos:
http://www.gcsufc.com.br/usuarios/upar.php
Veja o código:
<?php
$titulo = $_POST["login];
// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = $titulo/';
// 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', 'pdf', 'doc', 'docx', 'odt');
// 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 no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_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, png, doc, docx, pdf 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 tentar 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";
}
}
?>
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.