Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde Senhores,
Estou iniciando meus estudos em PHP e já consegui fazer várias coisas hehe...
Meu sistema de Upload de Arquivos está funcionando tudo OK, copiando a imagem do PC para a pasta img dentro do www.
Porém essa mensagem de erro está me incomodando e não sei como solucionar, já vi algumas sugestões na internet mas nada resolveu ainda.
Não queria meu sistema funcionando mas com uma mensagem de erro.
Warning: copy(): Filename cannot be empty in C:\AppServ\www\login\pags\cadastro.php on line 48
Meu código (cadastro.php):
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#showPassword').on('click', function(){
var passwordField = $('#password');
var passwordFieldType = passwordField.attr('type');
if(passwordFieldType == 'password')
{
passwordField.attr('type', 'text');
$(this).val('Ocultar');
} else {
passwordField.attr('type', 'password');
$(this).val('Mostrar');
}
});
});
</script>
</head>
<body>
<h4>Cadastre-se</h4>
<hr>
<link href='https://fonts.googleapis.com/css?family=Ubuntu' rel='stylesheet' type='text/css'>
<div class="container">
<form action="" id="loginForm" method="POST" enctype="multipart/form-data">
<p><label for="nome">Nome *</label><br><input type="text" name="nome" placeholder="Nome Completo" class="form-control"/></p><br>
<p><label for="usuario">Usuário *</label><br><input type="text" name="usuario" placeholder="Nome do Usuário" class="form-control"/></p><br>
<p><label for="password">Senha *</label><br><input type="password" name="senha" id="password" placeholder="Senha" /> <img id="showPassword" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABDUlEQVQ4jd2SvW3DMBBGbwQVKlyo4BGC4FKFS4+TATKCNxAggkeoSpHSRQbwAB7AA7hQoUKFLH6E2qQQHfgHdpo0yQHX8T3exyPR/ytlQ8kOhgV7FvSx9+xglA3lM3DBgh0LPn/onbJhcQ0bv2SHlgVgQa/suFHVkCg7bm5gzB2OyvjlDFdDcoa19etZMN8Qp7oUDPEM2KFV1ZAQO2zPMBERO7Ra4JQNpRa4K4FDS0R0IdneCbQLb4/zh/c7QdH4NL40tPXrovFpjHQr6PJ6yr5hQV80PiUiIm1OKxZ0LICS8TWvpyyOf2DBQQtcXk8Zi3+JcKfNafVsjZ0WfGgJlZZQxZjdwzX+ykf6u/UF0Fwo5Apfcq8AAAAASUVORK5CYII="
/><br><br>
<p><label for="email">E-Mail *</label><br><input type="email" name="email" placeholder="Endereço de E-Mail" class="form-control"/></p><br>
<p><label for="avatar">Avatar</label><br><input type="file" name="avatar" id="avatar"><br><br><input type="reset" value="Apagar"><br><br><br><br>
<input type="submit" value="Cadastrar" class="btn btn-primary btn-lg btn-block">
<input type="hidden" name="cadastrar" value="register">
</form>
</div>
</body>
</html>
<?php
$nome_temporario=$_FILES["avatar"]["tmp_name"];
$nome_real=$_FILES["avatar"]["name"];
copy($nome_temporario,"img/$nome_real");
cadastro($con);
?>
Esse cadastro($con) é uma function que efetua o cadastro e está em outro php, mas creio que ele não será necessário.
O erro está informando que é esta linha: **copy($nome_temporario,"img/$nome_real");**
Alguém teria alguma luz pra me ajudar???
Grato, Mateus.Ver se ajuda... Ha muito tempo criei essa classe de upload tenta ela para ver.
>
22 horas atrás, igu disse:
Olá, não entendi muito bem mas vamos lá
troque por:
<input type="submit" value="Cadastrar" name="confirmar" class="btn btn-primary btn-lg btn-block">
troque isso
por
<?php
if (isset($_POST['confirmar'])){
$nome_temporario=$_FILES["avatar"]["tmp_name"];
$nome_real=$_FILES["avatar"]["name"];
copy($nome_temporario,"img/$nome_real");
cadastro($con);
}
?>
acho que isso resolve
Meu amigo, muito obrigado, resolveu sim 100%!
Sem erros e funcionando 100%.Apenas um adendo, não utilize copy. Utilizee move_uploaded_file.
Caro Mateus
Tenta assim:
<?php
//Função que define o tamanho dos arquivos
include "tamanhoArquivo.php";
if( isset($_POST['executar']) && $_POST['executar'] == 'Adicionar' ){
$clientes_clienteId = "$userClientes_clienteId";
$nomeDoclie = strip_tags(trim($_POST['nomeDoclie']));
$validaDoclie = strip_tags(trim($_POST['validaDoclie']));
// arquivo
$arquivo = $_FILES['arquivo'];
// Tamanho máximo do arquivo (em Bytes) = 2Mb
$tamanhoPermitido = 1024 * 1024 * 2;
//Define o diretorio para onde enviaremos o arquivo
$diretorio = "admin-cliente/docClie/";
// verifica se arquivo foi enviado e sem erros
if( $arquivo['error'] == UPLOAD_ERR_OK ){
// pego a extensão do arquivo
$extensao = extensao($arquivo['name']);
// valida a extensão
if( in_array( $extensao, array('pdf') ) ){
// verifica tamanho do arquivo
if ( $arquivo['size'] > $tamanhoPermitido ){
echo '<div class="alert alert-warning alert-dismissible">
<h4>"O arquivo enviado é muito grande, envie arquivos de até '.$tamanhoPermitido/MB.' MB."</h4>
</div>';
//Redirecionando para Caixa de Enrada do Cliente
echo '<meta http-equiv="refresh" content="3, URL=painel.php?exe=admin-cliente/clientes/clientes" />';
}else{
// atribui novo nome ao arquivo
$novo_nome = 'cliente['.$clientes_clienteId.']-'.md5(time()).".".$extensao;
// faz o upload
$executar = move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome);
if($executar){
$sql_documento = 'INSERT INTO docCliente (nomeDoclie, pastaDoclie, validaDoclie, clientes_clienteId) ';
$sql_documento .= 'VALUES (:nomeDoclie, :novo_nome, :validaDoclie, :clientes_clienteId)';
try{
$query_documento = $conecta->prepare($sql_documento);
$query_documento->bindValue(':nomeDoclie',$nomeDoclie,PDO::PARAM_STR);
$query_documento->bindValue(':novo_nome',$novo_nome,PDO::PARAM_STR);
$query_documento->bindValue(':validaDoclie',$validaDoclie,PDO::PARAM_STR);
$query_documento->bindValue(':clientes_clienteId',$clientes_clienteId,PDO::PARAM_STR);
$query_documento->execute();
echo '<div class="alert alert-success alert-dismissible">
<h4>Documento Cadastrado com Sucesso!</h4>
</div>';
//Redirecionando para Caixa de Enrada do Cliente
echo '<meta http-equiv="refresh" content="3, URL=painel.php?exe=admin-cliente/clientes/clientes" />';
} catch(PDOexception $error_novoDocumento) {
echo '<div class="alert alert-warning alert-dismissible">
<h4>Erro o Documento.</h4>
</div>';
}
}else{
echo '<div class="alert alert-warning alert-dismissible">
<h4>Erro ao enviar o Documento.</h4>
</div>';
//Redirecionando para Caixa de Enrada do Cliente
echo '<meta http-equiv="refresh" content="3, URL=painel.php?exe=admin-cliente/clientes/clientes" />';
}
}
}else{
echo '<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="fa fa-warning"></i> Atenção!</h4>
Somente arquivo com a extensão: <strong>.PDF</strong> é permitido.
</div>';
}
}else{
echo '<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-info"></i> Atenção!</h4>
Por favor selecione um arquivo .PDF para ser enviado.
</div>';
}
}
?>
<?php
//tamanhoArquivo.php
function extensao($arquivo){
$arquivo = strtolower($arquivo);
$explode = explode(".", $arquivo);
$arquivo = end($explode);
return ($arquivo);
}
define('KB', 1024); // 1024
define('MB', 1048576); // 1024 * 1024
define('GB', 1073741824); // 1024 * 1024 * 1024
define('TB', 1099511627776); // 1024 * 1024 * 1024 * 1024
?>
Olá, não entendi muito bem mas vamos lá
>
9 minutos atrás, Mateus_Jp disse:
>
9 minutos atrás, Mateus_Jp disse: