Ir para conteúdo

POWERED BY:

Arquivado

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

Rob_Bor

[Resolvido] Exibir Imagem com PHP

Recommended Posts

Boa noite pessoal!

 

Eu consegui cadastrar imagens em um diretório, e gravar somente o caminho dela no MySQL.

 

e agora estou tentando exibi-las do banco. fazendo while desta forma:

 

while($inseto = mysql_fetch_object($sql)) {
echo "<img src='fotos/insetos/".$inseto->foto."' alt='Foto de Exibição' /><br />";
}

 

Ele aparece todas as imagens mais com aquele X de nao encontrada, que os navegadores colocam.

 

O direório está correto, pois seu eu exibo em HTML sem php. ela aparece normalmente.

 

Dai, fui verificar a codigo fonte da página, ele aparece assim:

 

 

<img src='fotos/insetos/Array' alt='Foto de Exibição' />

 

dentro do while ->foto é o campo da minha tabela que armazena o array com o nome da imagem.

 

Alguem pode me ajudar?

 

Valew galera...

 

Abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explique melhor!! Qual o conteudo do array foto? Tenta pegar so u elemento do array foto: $inseto->foto[0].

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo comentário, mais vamos lá

 

Explicando melhor, eu fiz o cadastro da imagem e dos outros dados no banco de dados dessa forma.

 

CADASTRANDO DADOS DO POST

if ($_POST['cadastrar']){

	$error = array(); // adicionei esta linha aqui.
// recuperando os dados do POST
   $nome	 				= $_POST['nome_inseto'];
$foto					= $_FILES["foto"];
$informacoes			= $_POST['informacoes_inseto'];
$tratamento				= $_POST['tratamento_inseto'];

	// Se a foto tiver sido selecionada
	if(!empty($foto["name"])) {
		// Largura máxima em pixels
		$largura = 10000;
		// Altura máxima em pixels
		$altura = 10000;
		// Tamanho maximo do arquivo em bytes
		$tamanho = 10000000;

	if (!preg_match('/^image\/(pjpeg|jpeg|png|gif|bmp)$/', $foto['type'])){
       		$error[1] = "Isso não é uma imagem.";
	}	  

	// Pega as dimensões da imagem
	$dimensoes = getimagesize($foto["tmp_name"]);

	// Verifica se a largura da imagem é maior que a largura permitida
	if($dimensoes[0] > $largura) {
			$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
			}
	// verificar se a altura da imagem é maior que a permitida
	if($dimensoes[1] > $altura) {
			$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
			}
	// Verifica se o tamanho da imagem é maior que o permitido
	if($foto["size"] > $tamanho) {
			$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
			}

	// Se não houver nenhum erro
	if(count($error) == 0) {
			// Pega extensão da imagem
		preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);

	// Gera um nome único para a imagem
       $nome_imagem = md5(uniqid(time())) . "." . $ext[1];

	// Caminho onde ficara a imagem
	$caminho_imagem = "./fotos/insetos/" . $nome_imagem;

			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto["tmp_name"], $caminho_imagem);

	 $sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$foto."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error()); 

			   // Se os dados foram inseridos com sucesso
			   if($sql) {
			   		echo "Dados Inseridos com Sucesso"; {/php} <img src="lay/images/sucesso.png"> {php} 
			   } else {
			   		echo "Erro! O Erro ocorreu no cadastro dos arquivos para o banco.";
			   } 
 				} 

	// Se houver mensagens de erro, exibe-as
	if (count($error) != 0) {
		foreach ($error as $erro) {
			echo $erro . "<br />";
		}
	}
}
}

 

consegui cadastrar, normalmente a foto na minha pasta e o array dela no banco de dados conforme essa imagem.

 

array.png

 

Agora estou tentando exibir todas minhas imagens, mais nao consigo.

 

EXIBINDO

 

while($inseto = mysql_fetch_object($sql)) {
				echo "<img src='fotos/insetos/".$inseto->foto."' alt='Foto de Exibição' /><br />";
			}

 

Entendeu melhor?

 

Ninguem pessoal? Por favor, ja tentei de todas as formas... e nada :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

while($inseto = mysql_fetch_object($sql)) {                                         echo "<img src='fotos/insetos/".$inseto->foto."' alt='Foto de Exibição' /><br />";                                 } 

 

não intendi nada, mais tenta isso.

 

$resposta = mysql_query("SELECT * FROM fotos ORDER BY pk_inseto ASC"); 
while($linha = mysql_fetch_array($resposta)) { 
$inseto = $linha['inseto']
$exibir = "<img src='fotos/insetos/".$inseto."' alt='Foto de Exibição' /><br />";
}
echo $exibir ;

 

você ajeita ai. E eu nem testei. (y)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o problema ta no seu INSERT.

$sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$foto."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error());

 

O valor não seria $nome_imagem?

 

 // Gera um nome único para a imagem
       $nome_imagem = md5(uniqid(time())) . "." . $ext[1];

 

$foto é um Array esqueceu?

$foto = $_FILES["foto"];

 

$foto["name"]; // $_FILES["foto"]["name"]
$foto["type"]; // $_FILES["foto"]["type"]
$foto["tmp_name"]; // $_FILES["foto"]["tmp_name"]

 

Por isso ele gravou o valor Array no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Nicolas já respondeu sua pergunta!! Eh isso mesmo q ele falou.

 

Substitui isso:

$sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$foto."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error()); 

 

Por isso:

$sql = mysql_query("INSERT INTO tb_cad_inseto VALUES (NULL, '".$nome."','".$_FILES["foto"]["name"]."', '".$informacoes."', '".$tratamento."', NULL)")or die(mysql_error()); 

 

OU simples mente substitua isso:

$foto= $_FILES["foto"];

 

Por isso:

$foto = $_FILES["foto"]["name"];

 

Tenta ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai pessoal, desculpe a demora pra responde. fiquei fora por uns dias...

mais já resolvi o problema.

 

no lugar de foto coloquei $imagem.. que ja tinha nome da foto..

 

daria no mesmo do que vocês me explicaram aii.. :)

 

valew pessoal, muito obrigado...

 

[tópico resolvido] =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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