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 joaovictorv
      Em cURL, eu chequei muitos exemplos de logar remotamente no facebook e no twitter, mas quando usamos cURL e rodamos a função cURL com id e passamos campo post então como aquele botão log in clicou automaticamente.
      Não consigo entender como esse botão de login foi clicado.
      Eu quero criar uma função cURL simples que pode inserir dados no formulário HTML e, em seguida, em mostrar-me um resultado na próxima pagina, se os dados estão validos ou inválidos.
       
      <input type="text" id="campo_numero" name="campo_numero" class="wAg" value="Numero" title="Digite o número"> <input type="text" id="campo_email" class="wCc" value="Email" title="Digite o Email"> <div class="loginBtn"> <a href="#" class="btnSubmit" role="button" title="Botão acessar conta">Acessar</a> </div>
    • Por lvsis
      Tenho um web sistema e nele tem um script php que executa o backup do banco de dados. Eu queria que o backup fosse finalizado uma notificação daquelas web push fosse exibida, assim o usuário poderia iniciar o backup e fazer outras coisas no sistema e quando o backup fosse finalizado ele seria avisado.
    • Por Nioshi
      Boa tarde, estou enfrentando um problema em meu código, eu tenho um código em c# que fica ouvindo a porta 12934, quando recebe requisição ele envia um post ao meu arquivo php, o problema está que o $_POST recebe valor nulo por algum motivo que ainda não descobri.
       
      código no c#:
      string URLreceber = "http://localhost/pweb/modulose"; string URLRetornoimg = "http://localhost/pweb/modulos"; string URLRetornocam = "http://localhost/pweb/moduloscaminho"; using (var cliente = new WebClient()) { NameValueCollection modulose = new NameValueCollection(); modulose["folha"] = folha; modulose["informe"] = informe; modulose["cartao"] = cartao; Console.WriteLine(modulose["folha"]); Console.ReadKey(); resultimg = cliente.UploadValues(URLRetornoimg, modulose); retorno = Encoding.UTF8.GetString(resultimg); Console.WriteLine(retorno); Console.ReadKey(); } código em php:
      $app->post('/modulos', function (Request $request) use ($app) { $modFolha = ''; $modInforme = ''; $modCartao = ''; if(isset($_POST['folha'])){ $modFolha = $_POST['folha']; } if(isset($_POST['informe'])){ $modFolha = $_POST['informe']; } if(isset($_POST['cartao'])){ $modFolha = $_POST['cartao']; } if($modFolha == 'sim'){ $modFolha = 'sim'; }else{ $modFolha = 'nao'; } if($modInforme == 'sim'){ $modInforme = 'sim'; }else{ $modInforme = 'nao'; } if($modCartao == 'sim'){ $modCartao = 'sim'; }else{ $modCartao = 'nao'; } if($modFolha == 'sim'){ $modulosImagem['folha'] = './images/holerite.png'; }else{ $modulosImagem['folha'] = './images/holeriteDesabilitado.png'; } if($modInforme == 'sim'){ $modulosImagem['informe'] = './images/informeVerde.png'; }else{ $modulosImagem['informe'] = './images/informeDesabilitado.png'; } if($modCartao == 'sim'){ $modulosImagem['cartao'] = './images/cartao.png'; }else{ $modulosImagem['cartao'] = './images/cartaoDesabilitado.png'; } if(file_exists("../app/config/global.php")){ return new Response(json_encode($modulosImagem), 201); } else{ return new Response("Arquivo global não existe", 500); } }); Código em .js
      // post para a rota que retorna os dados $http.post('./modulos', data, setting) .success(function (data, status, headers, setting){ $scope.folha = angular.fromJson(data).folha; $scope.informe = angular.fromJson(data).informe; $scope.cartao = angular.fromJson(data).cartao; }) .error(function (data, status, header, setting){ $scope.ResponseDetails = "Erro: " + data ; }); var setting = { headers : { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;' } } com as linhas:
      ini_set('display_errors', true); error_reporting(E_ALL); ele retorna:
      http://prntscr.com/lhhpdu
       
      e sem as linhas ele retorna NULL, alguém sabe dizer no que estou errando?
       
      retorno no c#:
      http://prntscr.com/lhhqba
       
      variáveis pegas:
      http://prntscr.com/lhhqr6
    • Por marafigo
      Bom dia,
      Alguém pode me ajudar? quando atualizei os (Pacotes instalados) apresentou a seguinte mensagem no meu ''Avisos'' no pfsense 2.4.2-RELEASE-p1 (amd64):
       
                          Crash report begins.  Anonymous machine information:
      amd64
      11.1-RELEASE-p6
      FreeBSD 11.1-RELEASE-p6 #8 r313908+a5b33c9d1c4(RELENG_2_4): Tue Dec 12 13:51:24 CST 2017     root@buildbot2.netgate.com:/builder/ce-242/tmp/obj/builder/ce-242/tmp/FreeBSD-src/sys/pfSense
      Crash report details:
      PHP Errors:
      [09-Nov-2018 08:20:01 America/Sao_Paulo] PHP Fatal error:  Call to undefined function init_config_arr() in /usr/local/pkg/shellcmd.inc on line 114
      [09-Nov-2018 08:22:28 America/Sao_Paulo] PHP Fatal error:  Call to undefined function init_config_arr() in /usr/local/pkg/shellcmd.inc on line 114

      Filename: /var/crash/minfree
      2048

      PHP errors
      PHP ERROR: Type: 1, File: /usr/local/pkg/shellcmd.inc, Line: 165, Message: Call to undefined function init_config_arr()    @ 2018-11-09 08:19:42
      PHP ERROR: Type: 1, File: /usr/local/pkg/shellcmd.inc, Line: 114, Message: Call to undefined function init_config_arr()    @ 2018-11-09 08:20:01
      PHP ERROR: Type: 1, File: /usr/local/pkg/shellcmd.inc, Line: 114, Message: Call to undefined function init_config_arr()    @ 2018-11-09 08:22:28
       
      abri o arquivo do caminho File: /usr/local/pkg/shellcmd.inc
       
      165: init_config_arr(array('installedpackages', 'shellcmdsettings', 'config'));
      114: init_config_arr(array('installedpackages', 'shellcmdsettings', 'config'));
    • Por camargo.2018
      Tou com um erro no meu script e não sei identificar erra pra ele exibir a imagem do usuário mas isso não está acontecendo
       
      Error:

       
      funcao.php:
      function ver_avatar($nick){ include 'str_get_html.php'; $url = "http://pt.clubcooee.com/users/view/".$nick; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_TIMEOUT, 15); $return = curl_exec($ch); curl_close($ch); $html = str_get_html($return); $res = $html->find('.m33 img'); $imgLink = $res[0]->attr['src']; return $imgLink; } str_get_html.php:
      <?php function str_get_html($str, $lowercase=true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT) { $dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText); if (empty($str) || strlen($str) > MAX_FILE_SIZE) { $dom->clear(); return false; } $dom->load($str, $lowercase, $stripRN); return $dom; } ?> menu.php:
      <div class="usr-nav"> <img src="<?php $veavt = ver_avatar($usr); echo $veavt; ?>" class="img-usr"> <p class="name-usr">Nome do Usuário</p> </div>  
      Me Ajudem mas rápido possível pfvrrrr
×

Informação importante

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