Ir para conteúdo
Mateus_Jp

Problema com Upload de Arquivos

Recommended Posts

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.

Editado por Gabriel Heming
adicionar marcação de código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, não entendi muito bem mas vamos lá

 

9 minutos atrás, Mateus_Jp disse:

<input type="submit" value="Cadastrar" class="btn btn-primary btn-lg btn-block">

troque por:

<input type="submit" value="Cadastrar" name="confirmar" class="btn btn-primary btn-lg btn-block">

troque isso

9 minutos atrás, Mateus_Jp disse:

<?php 
    $nome_temporario=$_FILES["avatar"]["tmp_name"];
    $nome_real=$_FILES["avatar"]["name"];
    copy($nome_temporario,"img/$nome_real");
    cadastro($con);
?>

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 

  • Obrigado! 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ver se ajuda... Ha muito tempo criei essa classe de upload tenta ela para ver.

 

 

  • Obrigado! 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
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%.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas um adendo, não utilize copy. Utilizee move_uploaded_file.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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">&times;</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">&times;</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
	
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tenho um uploads de arquivos via url,botei uma opção de por o nome no arquivo e manda a url com o nome mais não cria o arquivo la dentro com o nome que botei,alguem pode me ajudar??

 

arquivo php

<?php
if(isset($_POST['post_image']))
{
 $image_url=$_POST['image_path'];
 $data = file_get_contents($image_url);
 $new = 'images/$usuario.m3u';
 $upload =file_put_contents($new, $data);
 if($upload) {
     echo "<img src='images/$usuario.m3u'>";
 }else{
    echo "Please upload only image files";
 } 
}
?>

 

arquivo index.html

<html>
<head>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="row">
 <form method="post" action="upload_image.php">
  <div class="col-md-6">
    <input type="text" class="form-control" name="image_path" placeholder="URL DO ARQUIVO">
    <input type="text" class="form-control" name="usuario" placeholder="NOME DO ARQUIVO">
  </div>
  <div class="col-md-6">
    <input type="submit" class="btn btn-primary" name="post_image" value="UPLOAD">
  </div>
 </form>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por subplo
      Bom dia, pessoal,
       
      Tenho um projeto em Laravel 5.x e queria gerar PDF de um Blade já customizado em CSS.
       
      Tentei fazer com o DomPDF, porém ele não interpreta o CSS da mesma forma que aparece na página do sistema, parece que ainda não há suporte para tal.
       
      Alguma sugestão?
       
      Agradeço desde já a colaboração de todos, fico no aguardo.
    • Por artur0407
      Boa noite;
       
      Estou realizando testes com a biblioteca PDO para banco de dados com PHP;
      Logo de inicio estou realizando minha conexão com o banco utilizando um código simples nativo da biblioteca.
      No entanto, mesmo errando o código propositalmente e tendo setado todos os possíveis erros e tratando com o bloco "try catch" o php não me retorna erro de nenhuma forma.
       
      Abaixo ambos os códigos;
       
      Primeiro sem erros:
      <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:host=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Posteriormente com erro proposital (na string de conexão da classe PDO)
      <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:hst=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Observem que no construtor do pdo, no lugar de host escrevi 'hst' e o php não retorna erros!
       
      Como sou novo aqui, me desculpem algum erro de formatação na mensagem, obrigado!
    • Por zlDeath
      Então voltei a mexer a um projeto antigo meu, e quando fui colocar no localhost e depois que faço o login do nada começou a dar isso:
       

       
       
      Alguem sabe o que pode ser ?
       
      index.php:22
        $user = new Usuario($_SESSION["username"]);  
       
      Usuario.class.php:32
                  $this->senha = $dados['password'];  
      Config.class.php:32
       
            return self::Conectar();  
      Config.class.php:27
              self::$Connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       
       
    • Por gsinhorini
      Olá boa tarde, pessoal!
      Estou com uma dúvida, como eu falo para passar uma variável no redirect.
       
      $this->redirect("veiculo_custo","visualisar?codigo=");
      Já tentei colocar ele dentro de aspas simples e concatenar com ponto mas não deu certo.
      Alguém pode me ajudar.
    • Por MAYCON BARTOWSKI
      Galera, modifiquei uma lista para destacar o texto no mouse hover e ai os textos ficaram com aparência de link (azul e sublinhado). Nao consigo remover, alguem consegue me ajudar?
      Segue o link do html para download
      https://drive.google.com/open?id=1NKk77cmyO3S2Yke4zK4ELrH2kin33Hw9
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.