Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diego-SLP

Erro Script Upload foto para Perfil

Recommended Posts

Pessoal Bom dia,

Preciso fazer um sistema que faça o upload de uma foto de perfil para o banco e assim eu consiga traze-la na pagina PROFILE do meu usuario, porém, com minhas pesquisas na internet não consegui chegar a uma conclusão eficiente, já que não domino muito essa parte de uploads, pesquisei no blog do Thiago Belem e ele da um script pronto, explicado, contudo, no meu pc ocorre um erro, gostaria da ajuda de voces, vou postar aqui o codigo e o erro. grato.

 

RECEBE_UPLOAD

<?php
  // Aqui você faz a conexão com o banco de dados
  // Lista de tipos de arquivos permitidos
  $tiposPermitidos= array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png');
  // Tamanho máximo (em bytes)
  $tamanhoPermitido = 1024 * 500; // 500 Kb
  // O nome original do arquivo no computador do usuário
  $arqName = $_FILES['arquivo']['name'];
  // O tipo mime do arquivo. Um exemplo pode ser "image/gif"
  $arqType = $_FILES['arquivo']['type'];
  // O tamanho, em bytes, do arquivo
  $arqSize = $_FILES['arquivo']['size'];
  // O nome temporário do arquivo, como foi guardado no servidor
  $arqTemp = $_FILES['arquivo']['tmp_name'];
  // O código de erro associado a este upload de arquivo
  $arqError = $_FILES['arquivo']['error'];
  if ($arqError == 0) {
        // Verifica o tipo de arquivo enviado
    if (array_search($arqType, $tiposPermitidos) === false) {
      echo 'O tipo de arquivo enviado é inválido!';
    // Verifica o tamanho do arquivo enviado
    } else if ($arqSize > $tamanhoPermitido) {
      echo 'O tamanho do arquivo enviado é maior que o limite!';
    // Não houveram erros, move o arquivo
    } else {
      $pasta = '/uploads/';
      // Pega a extensão do arquivo enviado
      $extensao = strtolower(end(explode('.', $arqName)));
      // Define o novo nome do arquivo usando um UNIX TIMESTAMP
      $nome = time() . '.' . $extensao;
      // Escapa os caracteres protegidos do MySQL (para o nome do usuário)
      $upload = move_uploaded_file($arqTemp, $pasta . $nome);
      // Verifica se o arquivo foi movido com sucesso
      if ($upload == true) {
        // Cria uma query MySQL
        $sql = "INSERT INTO user (foto) VALUES ('". $upload ."')";
        // Executa a consulta
        $query = mysql_query($sql);
        if ($query == true) {
                    echo 'Usuário inserido com sucesso!';
                }
      }
    }
  } else {
    echo 'Ocorreu algum erro com o upload, por favor tente novamente!';
  }

INSERT_COLABORADOR

<form class="form-horizontal form-label-left input_mask" action="recebe_upload.php" method="post" enctype="multipart/form-data">

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Nome">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Endereço">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Data de Nascimento">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Telefone">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Celular">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Data de Admissão">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Àrea de Atuação">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="text" class="form-control has-feedback-left" id="inputSuccess2" placeholder="Horário de Trabalho">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      <div class="col-md-6 col-sm-6 col-xs-12 form-group has-feedback">
                        <input type="file" class="form-control has-feedback-left" id="arquivo" name="arquivo" placeholder="Foto do Perfil">
                        <span class="fa fa-user form-control-feedback left" aria-hidden="true"></span>
                      </div>

                      
                      
                      
                      
                      <div class="form-group">
                        <div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3">
                          <button type="submit" class="btn btn-success" value="enviar">Cadastrar</button>
                        </div>
                      </div>

                    </form>

Só estou usando o campo da foto por enquanto, os outros não estou inserindo no banco, e a pasta 'uploads' tá criada na raiz do site, junto dessas paginas.

 

os erros são:

 

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\dash\production\recebe_upload.php on line 27

Warning: move_uploaded_file(/uploads/1490185930.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\dash\production\recebe_upload.php on line 30

Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php9C30.tmp' to '/uploads/1490185930.jpg' in C:\xampp\htdocs\dash\production\recebe_upload.php on line 30

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só ler os erros e trata-los

 

Citar

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\dash\production\recebe_upload.php on line 27

Warning: move_uploaded_file(/uploads/1490185930.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\dash\production\recebe_upload.php on line 30

Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php9C30.tmp' to '/uploads/1490185930.jpg' in C:\xampp\htdocs\dash\production\recebe_upload.php on line 30

 

Primeiro erro:

Você está passando dados que não está no formato de variavel

 

Segundo erro:

O diretorio uploads não existe

 

Terceiro erro:

Como o diretorio uploads nao existe, o direcionamento do arquivo temporário não funcionou.

 

Entenda que aqui não é um lugar para você largar o código e as pessoas arrumarem para você.

Os erros estão bem evidentes, mas como você nem sequer soube interpretar o erro, logo, você não programou isso e certamente deu ctrl+c e v.

 

Por isso, recomendo você procurar o programador deste script e ir "pedir ajustes" diretamente a ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se ajuda:

https://github.com/gabrieldarezzo/comum/blob/master/upload_file.php

 

De qlq forma pesquise em cima dos erros, entenda como funciona cada função individual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por AlexandreHenrique
      Olá pessoal. preciso de uma ajuda com o meu projeto de upload.
      O projeto de upload roda no IIS + Php;
      Tenho um script que ta enviando  o arquivo para o diretório correto.
      O problema é que ao tentar acessar esse arquivo via URL, o anexo não abre  e exibe a mensagem abaixo.
       

      Notei que o arquivo ao cair no DIR, ele entra sem permissões (vi em propriedades), se eu editar o mesmo alterando as permissões, ele carrega pela url do meu site.
      Quero que o arquivo enviado pelo script caia no DIR correta com as devidas permissões pra eu poder ler no navegador via URL;
       
      Já tentei resolver de toda forma mas nao tive sucesso;.
      No Apache isso é mais simples, mas no IIS ta complicado;
       
       
       
      Alguem pode me dá uma dica?
    • Por Caio Vargas
      Fala pessoa tudo tranquilo ?
      estou com um problema eu fiz um sistema de upload onde tem a marca dagua  o problema e que quando o cadastro da capa e pequena a imagem da marca dagua fica grande
      e qauando a capa e grande  a imagem da marca dagua fica pequena alguem poderia me ajudar 
    • Por mateus.andriollo
      Olá,
      Gostaria de saber se alguem pode me ajudar.
      Meu PHP esta na pasta public_html em um CPanel, quero saber se é possível armazenar em pasta fora da pasta  pública, por segurança mesmo...
      Faço isso em ASP, ai chamo a imagem por um fso, funciona mas queria saber se tem como no PHP.
    • Por DeniseAlencar
      Boar tarde pessoal estou fazendo um teste com upload de imagens gravando no banco de dados porem quando cadastro uma imagem com o nome "foto.jpg" e depois cadastro a mesma imagem com o mesmo nome, no banco de dados aparece dois registros com nomes iguais mas gostaria que os nomes fossem diferentes.
       
      E na pasta arquivos aparece uma unica imagem gostaria que quando cadastrasse fotos iguais o nome mudasse tipo foto.jpg , foto2.jpg  etc (isso automaticamente) vou postar o codigo .
      <?php $diretorio = "arquivos/"; if(!is_dir($diretorio)){ echo "Pasta $diretorio não existe";}else{ $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE; for ($controle = 0; $controle < count($arquivo['name']); $controle++){ $destino = $diretorio."/".$arquivo['name'][$controle]; $nome_foto = $arquivo['name'][$controle]; if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){ $sql="INSERT INTO galeria (arquivo) VALUES ('$nome_foto')"; $qry = mysqli_query($conexao,$sql); echo "<head><meta HTTP-EQUIV='refresh' CONTENT='0;URL=index.php'></head>"; }else{ echo "Erro ao realizar upload"; } } } ?>  
    • Por Sapinn
      Estou precisando salvar fotos dos usuários de um sistema e não estou conseguindo fazer com OO já assisti video aulas e li algumas matérias mas sempre dá erro. Alguém sabe algum jeito de se fazer?? Eu até tentei mas fica sempre com erro, vou postar aqui talvez tenha algo que eu esteja fazendo errado.
       
      class para salvar a foto:
         private function salvarFoto($foto){         $fotos = $_FILES['foto_admin'];         $fotoDir = "imagens/fotos_admins/";         $fotoPath = $fotoDir . basename($foto['foto_admin']['name']);         $fotoTmp = $foto['foto_admin']['tmp_name'];         if(move_uploaded_file($fotoTmp, $fotoPath)):             return $fotoPath;         else:             return false;         endif;     } E estou chamando ela assim:
       $upload = $this->salvarFoto($_FILES);                 if(gettype($upload) == 'string'):                     $dados['foto_admin'] = $upload;                 endif;  
      E o erro é o seguinte: move_uploaded_file(imagens/fotos_admins/sapinn.jpg): failed to open stream: No such file or directory in
       
      Não sei o que está errado a pasta imagens/fotos_admins está dentro da minha pasta Controller
×

Informação importante

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