Jump to content


Photo

Gravar Nome Da Imagem No Banco


  • Faça o login para participar
23 replies to this topic

#1 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 05/06/2009, 11:18

Pessoal editel o meu post pra ficar mais facil de entender.

UPLOAD.PHP
<?php
error_reporting(E_ALL); 

// Aqui incluimos a classe upload
include('class.upload.php');

// Verificamos se a acao é igual a imagem
if ($_POST['acao'] == 'imagem') {

	// Instanciamos o objeto Upload
	$handle = new Upload($_FILES['imagens']);

	// Então verificamos se o arquivo foi carregado corretamente
	if ($handle->uploaded) {
		
		// Definimos as configurações desejadas da imagem maior
		$handle->image_resize			= true;
		$handle->image_ratio_y		   = false;
		$handle->image_x				 = 800;
		$handle->image_y				 = 600;
		/*
		$handle->image_watermark		 = 'watermark.png';
		$handle->image_watermark_x	   = -10;
		$handle->image_watermark_y	   = -10;
		$handle->image_bevel = 20;
		$handle->image_bevel_color1 = '#FF0000';
		$handle->image_reflection_height = '25%';
		$handle->image_reflection_space = -6;
		*/

		// Definimos a pasta para onde a imagem maior será armazenada
		$handle->Process('./img/imgimoveis/');
		
		// Em caso de sucesso no upload podemos fazer outras ações como insert em um banco de cados
		if ($handle->processed)
		{
			// Eximos a informação de sucesso ou qualquer outra ação de sua escolha
			echo '<p>Operação realizada com sucesso!</p>';
			echo "Aqui podemos fazer um INSERT no banco";
		}
		else
		{
			// Em caso de erro listamos o erro abaixo
			echo '<p>Erro encontrado!</p>';
			echo 'Erro: ' . $handle->error . '';
		}		

		// Aqui nos devifimos nossas configurações de imagem do thumbs
		$handle->image_resize			= true;
		$handle->image_ratio_y		   = false;
		$handle->image_x				 = 100;
		$handle->image_y					= 75;
		$handle->image_contrast		  = 10;
		$handle->jpeg_quality			= 70;
		$handle->file_new_name_body =	"1";

		// Definimos a pasta para onde a imagem thumbs será armazenada
		$handle->Process('./img/thumbs/');
		
		// Excluimos os arquivos temporarios
		$handle-> Clean();

	}
	else
	{
		// Em caso de erro listamos o erro abaixo
		echo '<fieldset>';
		echo '  <legend>file not uploaded on the server</legend>';
		echo '  Error: ' . $handle->error . '';
		echo '</fieldset>';
	}
}

echo '<p><a href="index.html">Voltar</a></p>';
// Aqui somente recupero o nome da imagem caso queira fazer um insert em banco de dados
$nome_da_imagem = $handle->file_dst_name;

echo $nome_da_imagem;
?>
FORMULARIO.PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
		<form name="form2" enctype="multipart/form-data" method="post" action="upload.php" />
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p><input type="file" size="32" name="imagens[]" value="" /></p>
			<p class="button"><input type="hidden" name="acao" value="imagem" /></p>
			<button type="submit">Enviar</button>
		</form>
</body>
</html>

Edição feita por: wellington09, 10/06/2009, 14:45.
Utilize as tags [codebox][/codebox] para códigos!


#2 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 08/06/2009, 15:57

estou tentando gravar com array no meu banco de dados e não estou conseguindo alguem pode me ajudar

for($i=0;$files = $_FILES['foto']($consulta);$i++)
{
echo $files;
}

Fatal error: Function name must be a string in C:\wamp\www\upload de imagem\upload.php on line 89

#3 mhbs56

mhbs56

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado
  • Localidade:Colombo - Paraná
  • Interesses:Geral....

Posted 08/06/2009, 16:06

Olá Guri.

Para gravar o nome da imagem no banco verifique em que campo e em qual tabela você irá gravar. (Lembre-se que voc~e deve estar conectado na base).

Imagine que vc tem a tabela "fotos" e tem um campo "nome". Imaginando que vc está conectado, Você pode fazer assim;

$nome_foto = "Casa1.png";

$sql = "INSERT INTO fotos (nome) VALUES ('".$nome_foto."')";
$res = mysql_query($sql);
if($res)
{
echo "Nome gravado";
}
else
{
echo "Falha";
}

Boa sorte

#4 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 08/06/2009, 16:07

[codebox]
for($i=0;$files = $_FILES['foto'][$consulta];$i++)
{
echo $files[$i];
}
[/codebox]

Vê aí!
Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#5 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 08/06/2009, 16:16

então mhbs56 eu sei gravar os dados no banco eu só não sei trabalhar com as array para passalas para o banco de dados eu to fazendo alguma coisa errada e não consigo enchergar

Então Dudu esquece o $consulta eu coloquei errado seria assim
for($i=0;$teste = $_FILES['foto'];$i++)
{
echo $teste[$i];
}

pois eu quero gravar no banco e eu coloquei este comando depois de todo o codigo que eu coloquei lá em cima , mas logico que está dendtro do

if (!array_key_exists('action', $_POST) || $_POST['action'] == 'multiple')
o erro que aparece com o meu for é este a baixo
Undefined offset: 1 in C:\wamp\www\upload de imagem\upload.php on line 91

Edição feita por: wellington09, 08/06/2009, 16:20.


#6 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 08/06/2009, 17:47

Não, seria:

for($i=0; $i < count($_FILES['foto']['name']); $i++){echo $_FILES['foto']['name'][$i];}

Tenta assim.
Neste caso, estamos trabalhando com array "tridimensionais", ou com três níveis.
Para estudar seu array, basta usar print_r().

Ex:
echo "<pre>";print_r($_FILES['foto']);echo "</pre>";


PS: Leia a MP que te mandei.

Até mais ^_^

Edição feita por: Dudu, 08/06/2009, 17:49.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#7 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 10/06/2009, 13:04

Então Dudu eu editei o meu codigo lá em cima pra ficar mais facil de entender.
fiz o exemplo que vc mostrou com for e mesmo assim não consegui to desde o dia q vc postou tentando fazer e nada de consguir vc poderia me ajudar ?

for($i=0;$i < count($_FILES['imagens']['name']);$i++)
{
echo $_FILES['imagens']['name'][$i];
}

E eu coloquei este FOR dentro de um IF onde se encontra este echo "Aqui podemos fazer um INSERT no banco";

$insere = "INSERT INTO tbfoto (imagens1,imagen2,imagens3, e vai vai...) VALUES ('$_FILES['imagens']['name'][0]','$_FILES['imagens']['name'][1]','$_FILES['imagens']['name'][2]', e ai vai...)";
$resultado = mysql_query($insere) or die ("Erro ao cadastrar a foto");


Edição feita por: wellington09, 10/06/2009, 14:14.


#8 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 10/06/2009, 14:00

Depure o código.

Dê um:

[codebox]
echo "<pre>";
print_r($_FILES['foto']);
echo "</pre>";
[/codebox]

Vê se retorna um array com vários elementos.
Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#9 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 10/06/2009, 14:26

Fiz a seguinte alteração no meu codigo e o resto ficou a mesma coisa como no primeiro codigo que postei no forum
Retornou isto: e agora não fez upload de nenhuma imagem e deu a mensagem de erro

imgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgimgteste.jpgArray(    [name] => Array        (            [0] => imgteste.jpg            [1] => imgteste.jpg            [2] => imgteste.jpg            [3] => imgteste.jpg            [4] => imgteste.jpg            [5] => imgteste.jpg            [6] => imgteste.jpg            [7] => imgteste.jpg            [8] => imgteste.jpg            [9] => imgteste.jpg            [10] => imgteste.jpg            [11] => imgteste.jpg        )    [type] => Array        (            [0] => image/jpeg            [1] => image/jpeg            [2] => image/jpeg            [3] => image/jpeg            [4] => image/jpeg            [5] => image/jpeg            [6] => image/jpeg            [7] => image/jpeg            [8] => image/jpeg            [9] => image/jpeg            [10] => image/jpeg            [11] => image/jpeg        )    [tmp_name] => Array        (            [0] => C:\wamp\tmp\php6AE.tmp            [1] => C:\wamp\tmp\php6AF.tmp            [2] => C:\wamp\tmp\php6B0.tmp            [3] => C:\wamp\tmp\php6B1.tmp            [4] => C:\wamp\tmp\php6B2.tmp            [5] => C:\wamp\tmp\php6B3.tmp            [6] => C:\wamp\tmp\php6B4.tmp            [7] => C:\wamp\tmp\php6B5.tmp            [8] => C:\wamp\tmp\php6B6.tmp            [9] => C:\wamp\tmp\php6B7.tmp            [10] => C:\wamp\tmp\php6B8.tmp            [11] => C:\wamp\tmp\php6B9.tmp        )    [error] => Array        (            [0] => 0            [1] => 0            [2] => 0            [3] => 0            [4] => 0            [5] => 0            [6] => 0            [7] => 0            [8] => 0            [9] => 0            [10] => 0            [11] => 0        )    [size] => Array        (            [0] => 142852            [1] => 142852            [2] => 142852            [3] => 142852            [4] => 142852            [5] => 142852            [6] => 142852            [7] => 142852            [8] => 142852            [9] => 142852            [10] => 142852            [11] => 142852        ))

file not uploaded on the server Error: File upload error (unknown error code)

Edição feita por: Dudu, 10/06/2009, 16:36.


#10 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 17/06/2009, 09:51

alguem poderia me ajudar ? não to conseguindo gravar o nome da imagem no banco e nem fazer o upoad dela já faz dias q to tentando haja paciencia

#11 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 22/06/2009, 15:49

alguem poderia me ajudar a fazer upload de multiplas imagens com o class.upload.php e gravar no banco ? pois não estou conseguindo.
se eu deixar o meu html assim
<p><input type="file" size="32" name="imagem" value="" /></p>
e deixar o meu php assim
$handle = new Upload($_FILES['imagem']);
ele faz o upload da imagem.

Agora se eu tentar fazer upload multiplo ele não faz upload.
gostaria que alguem pude-se me ajudar em relação a isto

#12 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 26/06/2009, 15:00

Depois de muito tempo finalmente consigo fazer o upload das imagens só que gostaria que alguem pude-se me ajudar para garvar o nome das imagens no banco de dados pois eu estou renomeando as imagens com o nome de FOTO e se a pessoa postar outra foto ae vai para FOTO_1 , FOTO_2 , FOTO_3 ect.
Se eu der um echo como no final do codigo eu consigo pegar o a verdadeiro nome da imagen mas como eu estou renomeando elas eu não posso pegar o nome original e sim o nome dela já renomeadas com _1, _2, _3 alguem pode me ajudar ?
já tenti dar um echo na $handle->file_new_name_body, echo na variavel $files, $file e nada as vezes só me aparece na tela Array e nada de mostrar o nome da imagem renomeada para q eu posso gravar no banco .
<?php
error_reporting(E_ALL); 
include('class.upload.php');
	if ($_FILES['imagem']) {
		$files = array();
		foreach ($_FILES['imagem'] as $k => $l) {
			foreach ($l as $i => $v) {
				if (!array_key_exists($i, $files)) 
					$files[$i] = array();
					$files[$i][$k] = $v;
				}
			}
			foreach ($files as $file) {
				$handle = new Upload($file);
				if ($handle->uploaded) {
					$handle->image_resize			= true; 		
					$handle->image_ratio_y		   = false;		
					$handle->image_x				 = 800;			
					$handle->image_y				 = 600;			
					$handle->file_new_name_body =	"foto";		// Aqui é onde eu renomeio as imagens
					$handle->Process("imagens/");
					echo $TESTE = $_FILES['imagem']['name'][0] = $handle->file_new_name_body = "foto";
					$handle-> Clean();
				}// Fecha if ($handle->uploaded)
		}// Fecha foreach
	}//Fecha if ($_POST['action'] == 'multiple')
	echo $_FILES['imagem']['name'][0]."<br />";
	echo $_FILES['imagem']['name'][1]."<br />";
	echo $_FILES['imagem']['name'][2]."<br />";
?>


#13 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 03/07/2009, 11:44

não estou conseguindo pegar os nomes das fotos já renomeados para gravar no banco ja tentei

echo $file_name_body;
echo $handle->file_name_body;
echo $files;
echo $file;
echo $handle->files;
echo $handle->file;
echo $files[0];
echo $file[0];
echo $handle->files[0];
echo $handle->file[0];
echo $_FILES['imagem']['name'][0]; .........> só que aqui ele vai pegar o nome original da foto e eu preciso do nome renomeado
E eu não estou entendendo este comando $handle desta classe.ulpoad.php

#14 Virou Web

Virou Web

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 04/07/2009, 09:08

Poem o resultado desse foreach que vc fez ai em cima..
Virou Web - Soluções em Vendas Online
Lojas Virtuais, Shopping Virtual, Comércio Eletrônico
www.virouweb.com.br

#15 wellington09

wellington09

    12 Horas

  • Usuários
  • 218 posts
  • Sexo:Masculino

Posted 08/07/2009, 10:56

o resultado aparece assim
ArrayArrayArray
e eu dei um echo bem aqui
foreach ($files as $file) {
	 $handle = new Upload($file);
	 echo $file;

Edição feita por: wellington09, 08/07/2009, 10:56.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq