Ir para conteúdo
Gabriel Zaia

Probleminha com move_uploaded_file

Recommended Posts

Pessoinhas, estou tendo um probleminha com logica, estou tentando fazer um upload multiplo de imagens com nomes variados de imagens e queria salvá-as depois os nomes das imagens no banco de dados com as seguintes informações: 

id, Nome da imagem, id da casa

Porém está ocorrendo um erro ao realizar upload 

Parse error: syntax error, unexpected ',' in adm\gravar.php on line 16

Se puderem me ajudar.

Obs: Sou meio novato na área, então tenham paciência suahsuha.

<?php 
session_start();
include('config/config.php'); 
$idcasa = $_SESSION["idcasa"];
$banner = 1;
$diretorio = "fotos/";
if(!is_dir($diretorio)) {
	echo "Pasta $diretorio nao existe";
}else{
	$arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
	for ($controle = 0; $controle < count($arquivo['name']); $controle++){
		$aleatorio = rand(5, 10);
		$valor = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjKkLlMmNnPpQqRrSsTtUuVvYyXxWwZz0123456789"), 0, $aleatorio);
		
		$novonome = $valor.'.jpg';
		$destino = $diretorio."/".$arquivo['name'][$controle]. $nomefinal;
		if(move_uploaded_file([$controle], $destino)){
			echo "Upload realizado com sucesso <br>";
			$sql = mysqli_query("insert into fotos (id, nome, idcasa) values ('', '$novonome', '$idcasa')")
		}else{
			echo "Erro ao realizar upload! <br>";
		}
		
	}
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
29 minutos atrás, Gleyson Abreu disse:

Você esqueceu do ponto-e-virgula; no final dessa query.

 

Verdade, porém ainda persiste o erro, eu creio que seja em uma dessas duas linhas

$destino = $diretorio."/".$arquivo['name'][$controle]. $nomefinal;
		if(move_uploaded_file([$controle], $destino)){

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php 
session_start();
include('config/config.php'); 
$idcasa = $_SESSION["idcasa"];
$banner = 1;
$diretorio = "fotos";
if(!is_dir($diretorio)) {
	echo "Pasta $diretorio nao existe";
}else{
		$arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
		for ($controle = 0; $controle < count($arquivo['tmp_name']); $controle++){
		$aleatorio = rand(5, 10);
		$valor = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjKkLlMmNnPpQqRrSsTtUuVvYyXxWwZz0123456789"), 0, $aleatorio);
		$novonome = $valor.'.jpg';
		$destino = $diretorio."/".$novonome;
		if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){
			echo "Upload realizado com sucesso <br>";
			$sql = mysqli_query("insert into fotos (id, nome, idcasa) values ('', '$novonome', '$idcasa')");
		}else{
			echo "<br>Error ao enviar a imagem: ".$destino;
		}
		
	}
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu arrumei alguns erros, porém não obtive resultados

Segue o código atualizado:

<?php
error_reporting(E_ALL);
 
include('conexao.php');
$idcasa = 1;
$banner = 1;
$diretorio = "fotos";
if(!is_dir($diretorio)) {
    echo "Pasta $diretorio nao existe";
}else{
    $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
    for ($controle = 0; $controle < count($arquivo['name']); $controle++){
        $aleatorio = rand(5, 10);
        $valor = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjKkLlMmNnPpQqRrSsTtUuVvYyXxWwZz0123456789"), 0, $aleatorio);
       
        $novonome = $valor.'.jpg';
        $destino = $diretorio."/".$arquivo['name'][$controle]. $novonome;
        if(move_uploaded_file([$controle], $destino)){
            echo "Upload realizado com sucesso <br>";
            $sql = mysqli_query("insert into fotos (id, nome, idcasa) values (NULL, '$novonome', '$idcasa')");
        }else{
            echo "Erro ao realizar upload! <br>";
        }
       
    }
}
?>

 

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 PeeWee
      Estou tentando implementar no meu sistema um upload de arquivo, para que o usuário ao criar seu login possa subir sua foto, achei um código interessante na web porém está exibindo o erro,
      Strict standards: Only variables should be passed by reference in C:
      consultei alguns fóruns sem exito. Segue o código: 
       
      $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 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.";
      }
       
      Durante minha pesquisa li que não é permitido passar o retorno de um array para outra função, o método que se deve fazer é atribuir este retorno a uma variável e usar esta variável como referência, pois bem, tentei a seguinte alteração
       
      $extensao = strtolower(explode('.', $_FILES['arquivo']['name']));
      $extensaoDois = end( $extensao);
      if (array_search($extensao, $_UP['extensoes']) === false) {
      echo "Por favor, envie arquivos com as seguintes extensões: jpg, 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.";
      }
      Porém sem exito. Aguardo sugestões dos colegar.
    • Por MichellHenrique
      Ola pessoal,
       
      estou com problema em uploads em clientes android, mesmo dando permissão para o navegador acessar o armazenamento
      do celular tem arquivos que eu consigo subir e outros que não consigo. O sistema de upload é bem simples, esta funcionando
      bem no windows e no linux. Suspeito que o problema esteja diretamente relacionado as permissões no android mas ainda nao
      achei uma solução. Alguém ja passou por isso?
       
      Obs: Testei nos navegadores chrome, firefox e operamini no android e todos apresentam o mesmo problema...
       
      index.html
      ... <form method="POST" action="upload.php" enctype="multipart/form-data"> <input type="file" name="file1" id="file1"> <input type="submit" value="Enviar"> </form> ...  
      upload.php
      <?php // Carrega arquivo de configurações require('config.php'); // Recebe arquivo a ser enviado de forma ternária $arquivo1 = (isset($_FILES['file1'])) ? $_FILES['file1'] : null; // Essa parte é por desencargo de consiencia caso por // ventura o arquivo estivesse trasendo permissões // anteriores do android que impedissem sua movimentação if(chmod($arquivo1['tmp_name'], 0777)){ echo 'Permissão mudada'; }else{ echo 'Permissão negada'; } // Aqui um teste simples para saber se o arquivo foi // transferido para a pasta temporaria do servidor if(file_exists($arquivo1['tmp_name'])){ echo 'O arquivo existe'; }else{ echo 'O arquivo não existe'; } // Move o arquivo baixado para a pasta informada no // arquivo config.php e mostra mensagem sobre a transferência echo move_uploaded_file($arquivo1['tmp_name'], $pastaupload.$arquivo1['name']) ? 'Envio Completo!' : 'Falha No Envio!'; ?>  
    • Por onedev
      Olá Pessoal,

      qual a forma mais segura de filtrar um upload asp de arquivos para somente imagens?

      Tentei reconhecer a extensão do arquivo e limitar apenas upload de arquivo .gif/.jpg e também filtrar pelo tipo de arquivo. Porém algum mal intencionado pode simplesmente renomear um arquivo malicioso para .gif, fazer o upload e depois acessar o arquivo para executa-lo. Alguém conhece ou recomenda algum filtro eficiente?

      Utilize os seguintes recursos:
      For Each File in Upload.Files 
         If File.ContentType <> "image/gif" Then 
            Resposta = "Arquivo enviado nao e um formato valido de imagem." 
            File.Delete 
         End If 
      Next
       
      For Each File in Upload.Files 
         If UCase(Right(File.Path, 3)) <> "gif" Then 
            Resposta = "Arquivo enviado nao e um formato valido de imagem." 
            File.Delete 
         End If 
      Next
       
    • Por Mateus_Jp
      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.
    • Por Bobrinha
      Olá, 
       
      Estou com um probleminha e não encontrei uma solução, se alguém souber o que pode ser eu agradeço.
       
      Ao tentar fazer upload de imagens, o navegador esta me retornando a seguinte mensagem
       
       
      Formulario 
      <form name="form" method="POST" enctype="multipart/form-data"> <input type="file" name="capa" /> </form> if (isset($dados) && $dados['enviar']):     $dados['capa'] = ($_FILES['capa']['tmp_name'] ? $_FILES['capa'] : null);     $cadastra = new Noticias(); endif;  
      A mensagem quando aparece no navegador se eu clico em cancelar ela para, mais se clico em continuar ela reenvia os dados, o que pode ser?
×

Informação importante

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