Publicidade

cristianomg

Gravar no banco após gerar Upload de imagem

Patrocínio:

E ae pessoal,

Preciso de uma orientação no seguinte,

Fazendo algumas pesquisas cheguei no código onde seleciono multiplas imagens e as coloco em uma pasta especifica, até tranquilo.

Mas agora eu preciso que dentro do meu foreach  cada imagem seja gravada na base de dados, ou seja, ao receber cada imagem eu terei de gravar na base linha a linha.

Tentei colocar o insert dentro do foreach mas não deu...algué tem alguma orientação de onde posso incluir meu insert por exem da tabela imagens ( codimg, nomeimagem )

 

Fiz o meu foreach desta forma:

 

 

 

 session_start();
 foreach($_FILES['images']['error'] as $key => $error){
	 
	 if($error == UPLOAD_ERR_OK){
		 $name = $_FILES['images']['name'][$key];
		 $_SESSION['imagens'][] = $name;
		 move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
		 }
		 

		// Eu encontrei esta instrução abaixo mas não acredito que seja a forma mais adequada e esta tb não funcionou
		foreach($_SESSION['imagens'] as $key => $imagem){
		$sql = "INSERT INTO fotos_anuncio ( nomeimagem) VALUES ('$imagens');" or die(mysql_error());
		if($resultado=mysql_query($sql)){
			echo "<script>alert('salvou');</script>";
			}else{
			echo  die(mysql_error());
			echo "Deu guru!";
			}
		 }
 }

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei desta forma e também não deu..

 

 

 

session_start();
 foreach($_FILES['images']['error'] as $key => $error){
	 
	 if($error == UPLOAD_ERR_OK){
		 $name = $_FILES['images']['name'][$key];
		 $_SESSION['imagens'][] = $name;
		 move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
         /// tentei incluir aquei dentro do foreach e não deu ..
$sql = "INSERT INTO fotos_anuncio ( nomeimagem) VALUES ('$imagens');" or die(mysql_error());
		if($resultado=mysql_query($sql)){
			echo "<script>alert('salvou');</script>";
			}else{
			echo  die(mysql_error());
			echo "Deu guru!";
			}

		 }
 }

Alguém sabe outro meio para atender isso ?

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que acontece de errado?

 

o primeiro código não faz sentido porque você fez um loop dentro do outro.
mas qual o problema desse segundo? o que aparece? 

 

isso aqui:

$sql = "INSERT INTO fotos_anuncio ( nomeimagem) VALUES ('$imagens');" or die(mysql_error());

está errado.
tente assim:

 

session_start();
foreach($_FILES['images']['error'] as $key => $error){
   
  if($error == UPLOAD_ERR_OK){
    $name = $_FILES['images']['name'][$key];
    $_SESSION['imagens'][] = $name;
    move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
         
    $sql = "INSERT INTO fotos_anuncio (nomeimagem) VALUES ('$name');";
    mysql_query($sql) or die(mysql_error());
  }
}

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei,

Na verdade a tela carrega as fotos na div, chama o javascript para upload das fotos na pasta, mas passa batido pelo INSERT.

Nem uma mensagem pelo insert exibe em tela...

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então procure no log da aplicação o que está acontecendo.
Sem mensagem de erro é impossível averiguarmos. Como o problema é PHP vou transferir teu tópico de fórum.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém ai já passou por algo parecido para dar um norte.

Olhei com f12 para ver logs de erros mas não gerou nada. :persevere:

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que ver os logs do servidor. E não no F12.

Pesquise como ver os logs do php/apache no teu sistema operacional.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa William,
Olhei no easy nos log files > Apache error e Mysql error , e não contém nada na data atual quando tento executar as inclusões.

Vou ver se acho algum outro tipo, de envio com preview de múltiplas imagens pra base de dados.

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO

 

 

Opa descobri,
havia um bloqueio no servidor, devido ao limite de "mb" de envio das imagens, acho que estava impedindo de certa forma isso.

Segue para quem precisar usar um dia.

 

Seleção das imagens:

 

				<form action="upload.php" enctype="multipart/form-data" method="post" >
					<input type="file" name="images[]" id="images" multiple>
					<button  type="submit" id="btn">Enviar Arquivos</button>
				</form>

 

 

Publicando na base de dados:

 <?php 
session_start();
include "conexao_banco";

foreach($_FILES['images']['error'] as $key => $error){
   
  if($error == UPLOAD_ERR_OK){
    $name = $_FILES['images']['name'][$key];
    $_SESSION['imagens'][] = $name;
    move_uploaded_file($_FILES['images']['tmp_name'][$key], 'local onde ira mover as imagens/'.$name);
         
    $sql = "INSERT INTO tabela (nomeimagem) VALUES ('$name');";
    mysql_query($sql) or die(mysql_error());
  }
}
 
 ?>

 

 

William obrigado pela atenção ae. :thumbsup:

 

 

faz tempo que não entro no site e mudou, onde eu coloco o post como resolvido ?

 

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me deparei com mais um ultimo ponto para fechar.

Eu precisaria passar um id de anuncio como parâmetro

 

Tentei de duas formas: passando por input text e pegando no $_POST e/ ou passando por GET e pegando por $_GET

Mas ele insere zero na base, tipo não pega o POST ou o GET

 

Não entendi....

<form action="upload.php?id=<?php echo $_GET['id']?>" enctype="multipart/form-data" method="post" >
				<input type="text" name="idanuncio" value="25">
					<input type="file" name="images[]" id="images" multiple>
					<button  type="submit" id="btn">Enviar Arquivos</button>
				</form>

 

Para salvar na base o idanuncio

 


foreach($_FILES['images']['error'] as $key => $error){
  
  
	if($error == UPLOAD_ERR_OK){
    $name = $_FILES['images']['name'][$key];
    $_SESSION['imagens'][] = $name;
    move_uploaded_file($_FILES['images']['tmp_name'][$key], 'imagens/anuncios/upload/'.$name);
	
	$idanuncio = $_POST['idanuncio'];   
**ou usando GET	
	$idanuncio = $_GET['idanuncio'];         

    $sql = "INSERT INTO fotos_anuncio (idanuncio, nomeimagem) VALUES ('$idanuncio','$name');";
    mysql_query($sql) or die(mysql_error());
  }
}
 

 

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
<input type="hidden" name="id" value="<?=$_GET['id']?>">

Add no form um input escondido.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae Williams

Justamente fiz isto mas não vai, as imagens estão sendo salva na base corretamente mas o input text que contém meu valor ou até mesmo o $_GET não absorve o valor no arquivo upload.php

 

Não sei o que pode ser que acontece...

Inseri diretamente o valor e no arquivo upload.php não esta pegando este valor do input,..

<input type="text" name="idanuncio" value="25">

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
<form action="upload.php" enctype="multipart/form-data" method="post" >
    <input type="hidden" name="idanuncio" value="25">
    <input type="file" name="images[]" id="images" multiple>
    <button  type="submit" id="btn">Enviar Arquivos</button>
 </form>



Faça um debug nos dados . 
 

upload.php


var_dump($_POST);

e ve se chega o post

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vem este retorno:

array(1) { ["idanuncio"]=> string(2) "25" }

Só que tem uma coisa Williams...eu uso um js que faz o esquema das imagens multiplas e chama o upload.php .

Cara eu acho que eu deve passar este parametro pelo JS ..

Bha só pode ser isso não é?

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o teste, mas se você fez o debug e esta aparecendo a string lá porque já foi enviada ou não!?

Testa diretamente, cara isso é bem básico, seja passado por js ou não!
 

$idanuncio = isset( $_POST['idanuncio'] ) ? $_POST['idanuncio'] : false;

echo $idanuncio;
0

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

  • Próximos Eventos

  • Conteúdo Similar

    • Por Mateusphp
      Olá, queria fazer um upload com input do tipo FILE MULTIPLE, mas não consigo fazer com que o caminho de cada imagem seja salvo no banco de dados
    • Por ivangimenesa
      Olá galera tudo bem? Venho aqui trazer uma grande dúvida que possuo, sendo referente a linkar imagens do meu computador a este botão e fazer o upload das mesmas.

      Porém, queria fazer os uploads e após concluir o envio da imagem, que ela apareça como uma box, mostrando a mesma em local especifico.
      Melhor dizendo, igual a imagem que enviei no anexo.

      Tipo o anexo também, ao enviar o upload da imagem, automaticamente ela aparece.

      Lojas são assim. Ao vendedor for construir um post, automaticamente mostra os botões de upload e ao escolher as imagens, ela já aparecem no local marcado para aparecerem. Entenderam?
       
      Os botões em html são as coisas mais simples de iniciar, depois é o complicado... Se alguém conseguir me dar uma força, agradeço!

    • Por jmfpinto
      Olá,
      desenvolvi uma pequena biblioteca usando javascript, html e css que tem a finalidade de inserir em um documento controles input type="file" para upload de arquivos. A chamada é mais ou menos assim:
              <div id="principal">
                  <h3>Criação dinâmica de controles para upload de arquivos</h3>
                  <button class="btn btn-primary" onclick="eu_buildControl('principal', true, '', true, '')">Insere novo controle</button>
                  <button class="btn btn-primary" onclick="eu_uploadAllFiles('principal')">Executa upload</button>
              </div>
       
      Ao receber um click o botão "Insere novo controle" dispara a função eu_buildControl(...) que injeta no documento via javascript um código HTML devidamente preparado para permitir ao usuário escolher arquivos para upload. Um exemplo da tela que resulta após cliques no botão de inserção está anexa. Cada linha/conjunto de input, barra de progresso, botão preview e botão delete é inserido automaticamente no documento.
       
      Até aí tudo certo, mas quando parti para o uso em um app esbarrei no problema de aninhamento de forms que não é suportado no HTML. O form "principal" (que é o form que permite ao sistema se comunicar com o servidor via php) conflita com o form usado dentro da função eu_buildControl(...) para enviar via ajax os uploads. No caso do Chrome (não cheguei a testar nos outros) as linhas contendo o form mais interno são simplesmente rejeitadas e não aparecem no código carregado.
       
      Andei olhando vários posts na web a respeito desta situação mas ainda não sei bem como contornar esse problema. Peço então alguma orientação do pessoal mais experiente no sentido de encontrar a melhor saída.
       
      Andei lendo que o uso de iframes poderia resolver o problema, mas não testei ainda. Me pareceu relativamente simples mas neste caso eu gostaria de perguntar se há alguma maneira de injetar o conteúdo de uma variável (que obviamente terá um trecho html consistente dentro de si) no parâmetro source do elemento iframe. Algo assim:
      <iframe src= minha_variavel_js ...></iframe>
       
      Bem, desde já agradeço a atenção.
       
      Att,
      Jorge.
       

    • Por Higor Sales
      Bom Dia usuários,
       
      Estou com uma mega dúvida e preciso da ajuda de um ser iluminado...
      Estou precisando inseri em meu formulário no painel administrador um campo para UPLOAD DE ARQUIVO PDF, já fiz de tudo mais esta complicado, quem tiver esse conhecimento pode estar me ajudando?
      Nesse formulário eu insiro nome, data e o (upload do pdf) no caso na página vai aparecer esses dados e um botão para visualizar o PDF.
       
    • Por matheusmarson
      Fala Galera!
       
      Seguinte
      Fiz um sisteminha para upload de fotos em php
      Tudo funcionando bklz.
      Porém após o upload da imagem na pasta o arquivo que fui upado fica sem permissões e aí não consigo copiá-lo ou manipulá-lo
      Alguém já teve este problema
      Como resolver?
       
      Valew desde já