Ir para conteúdo

Arquivado

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

Vales & Dores

Salvando imagem no BD

Recommended Posts

<?php

// Nome do arquivo: usuarios_salvar.php 

if(is_uploaded_file($_FILES['f_foto_usuarios']['tmp_name'])) {
if($_FILES['f_foto_usuarios']['size']>(980*1024)) { 
echo 'Arquivo de imagem deve ser menor que 64Kb!';
}
}


// INÍCIO: UPLOAD IMAGEM
if(is_uploaded_file($_FILES['f_foto_usuarios']['tmp_name'])) {
$imgData = file_get_contents($_FILES['f_foto_usuarios']['tmp_name']);
$sizeData = getimagesize($_FILES['f_foto_usuarios']['tmp_name']);
$foto_usuarios = $imgData;
$tipo_foto_usuarios = $sizeData['mime'];

echo'foto Salva';
}

$in = "INSERT INTO foto VALUE ('$imgData','$tipo_foto_usuarios')";
        mysql_query("$in");

?>

Tentei Deus sabe que tentei mas nao esta salvando as imagens na tabela me ajudem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute assim, e veja o erro.

mysql_query( $in )or die( mysql_error() );

ai você vai saber pq não tá inserindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Really? Você quer mesmo colocar o binário da imagem no banco de dados?

Ruim, muito ruim...

 

Por quê?

Porque qualquer imagenzinha besta tem aí seus 200 kB. Dessa forma, cada linha do seu banco de dados vai ter no mínimo 200kB.

Se você tiver 100 linhas, são 20 MB, se tiver 1000 linhas, 200 MB e por aí vai...

 

Como fazer?

Colocar a imagem em alguma pasta e salvar apenas o CAMINHO para a imagem enviada na tabela. Você precisará de no máximo uns 200 Bytes para salvar o caminho completo da imagem.

Com isso, você reduz em MIL VEZES o tamanho da sua base de dados.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute assim, e veja o erro.

mysql_query( $in )or die( mysql_error() );

ai você vai saber pq não tá inserindo.

 

 

Amigo nao sei por que mas o OR DIE nao funciona no meu e olha que eu uso o xampp.

mas me diga se estiver errado, nao seria melhor se usar var_dump ?

 

Amigo nao sei por que mas o OR DIE nao funciona no meu e olha que eu uso o xampp.

mas me diga se estiver errado, nao seria melhor se usar var_dump ?

or die nao funciona mas die eu descobri que sim.

o que ele deu foi isso:

 

INSERT INTO foto VALUE ('','')parece que ele nao esta aceitando ou achando as variaveis

 

Really? Você quer mesmo colocar o binário da imagem no banco de dados?

Ruim, muito ruim...

 

Por quê?

Porque qualquer imagenzinha besta tem aí seus 200 kB. Dessa forma, cada linha do seu banco de dados vai ter no mínimo 200kB.

Se você tiver 100 linhas, são 20 MB, se tiver 1000 linhas, 200 MB e por aí vai...

 

Como fazer?

Colocar a imagem em alguma pasta e salvar apenas o CAMINHO para a imagem enviada na tabela. Você precisará de no máximo uns 200 Bytes para salvar o caminho completo da imagem.

Com isso, você reduz em MIL VEZES o tamanho da sua base de dados.

 

:thumbsup:

 

 

Eu sabia do peso no BD, mas eu nao sei como fazer essa programação de colocar as img na pasta e o caminho no bd.

 

E sobre isso eu acho que tem que ter duas logicas envolvidas uma para colocar o caminho no bd a outra par mandar a img para a pasta e a parte de ter que criar uma pasta para cada usuario, isso sendo feito automaticamente e eu ainda sou iniciante no php, por isso eu escolhi o bd, o codigo a cima e mais facil, pelo menos para mim amigo, mas ai sobre a carga do bd eu aumento o servidor para 20 teras.

 

o que voce pode fazer por mim ? sera que você sabe o erro do por que a img nao vai para o BD?

sera que o meu cidigo tem um erro que eu nao estou vendo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o tipo do campo que vai armazenar a imagem na tablea?

Deve ser LONGBLOB.

 

Exatamente LONGBLOB

 

id int(255)

Nulo: Não

Padrão: None

Extra: Auto_INCREMENTE

 

binariofot: Longblog

Collation:

Atributos: BINARY

NULO: NAO

padrao: NONE

Extra:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro do codigo aqui debatido:

 

Aviso : Undefined variable: imgData em C: \ xampp \ htdocs \ www \ usuarios_salvar.php on line 9

 

Notice : Undefined variable: tipo_foto_usuarios em C: \ xampp \ htdocs \ www \ usuarios_salvar.php na linha 9

string (29) "INSERT EM VALOR foto ('','') "foto Salva

 

 

 

Aviso : Undefined variable: imgData em C: \ xampp \ htdocs \ www \ usuarios_salvar.php on line 9

 

Notice : Undefined variable: tipo_foto_usuarios em C: \ xampp \ htdocs \ www \ usuarios_salvar.php na linha 9

string (29) "INSERT EM VALOR foto ('','') "foto Salva

 

 

Ta vendo gente eu ja tentei usar a regra de somente duas " expande variaveis;

Compartilhar este post


Link para o post
Compartilhar em outros sites

codigo errado:

<?php

 

// Nome do arquivo: usuarios_salvar.php

 

if(is_uploaded_file($_FILES['f_foto_usuarios']['tmp_name'])) {

if($_FILES['f_foto_usuarios']['size']>(980*1024)) {

echo 'Arquivo de imagem deve ser menor que 64Kb!';

}

}

 

 

// INÍCIO: UPLOAD IMAGEM

if(is_uploaded_file($_FILES['f_foto_usuarios']['tmp_name'])) {

$imgData = file_get_contents($_FILES['f_foto_usuarios']['tmp_name']);

$sizeData = getimagesize($_FILES['f_foto_usuarios']['tmp_name']);

$foto_usuarios = $imgData;

$tipo_foto_usuarios = $sizeData['mime'];

 

echo'foto Salva';

}

 

$in = "INSERT INTO foto VALUE ('$imgData','$tipo_foto_usuarios')";

mysql_query("$in");

 

?>

 

 

 

Código certo:

 

<?php

 

/*

**** Nome do arquivo: usuarios_salvar.php ****

*/

// VERIFICA TAMANHO DA IMAGEM (Este teste não é obrigatório)

 

require('conectar_bd.php');

//O erro estava aqui ('','$tipo_foto_usuarios')

estava faltando aspas simples '' para o id auto_inclement kkkkk Haaaa muleque rsss

eu amo programar rsss.

$In = "INSERT INTO foto VALUE('','$tipo_foto_usuarios')";

mysql_query("$In");

 

 

if(is_uploaded_file($_FILES['f_foto_usuarios']['tmp_name'])) {

if($_FILES['f_foto_usuarios']['size']>(980*1024)) { // se for maior de 64k

echo 'Arquivo de imagem deve ser menor que 64Kb!';

}

}

// INÍCIO: UPLOAD IMAGEM

 

 

if(is_uploaded_file($_FILES['f_foto_usuarios']['tmp_name'])) {

$imgData = file_get_contents($_FILES['f_foto_usuarios']['tmp_name']);

$sizeData = getimagesize($_FILES['f_foto_usuarios']['tmp_name']);

$foto_usuarios = $imgData;

$tipo_foto_usuarios = $sizeData['mime'];

 

 

 

echo'foto Salva';

}

 

 

 

 

?>

 

obrigado amigos a todos vocês, muito obrigado mesmo um dia serei como voces tambem e vou ajudar as pessoas como voces me ajudam muito obrigado por conpartilhar o seu conhecimento comigo e ajudar a eu crescer em rumo a poder um dia colocar no curriculum programador PHP um abraço a todos.

 

OBS: estou trabalhando no que guarda a imagem na pasta e guarda o caminho com md5 logo logo vou colocar aqui.

quem viu o Igor.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai gente esse negocio de pegar codigos e modificar vai relamente me levar a aprender a programar?

o que voces que tem experiencias podem falar sobre isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai gente esse negocio de pegar codigos e modificar vai relamente me levar a aprender a programar?

na minha opinião não.

 

o que voces que tem experiencias podem falar sobre isso?

estude a base.

leia sobre cada função, entenda oq cada uma faz.

 

Faça seus proprios codigos. Só use codigos de terceiros, se você entender oq eles estão fazendo, e for capaz de fazer o mesmo sozinho.

 

se não, volte e faça do zero.

Compartilhar este post


Link para o post
Compartilhar em outros sites
ai gente esse negocio de pegar codigos e modificar vai relamente me levar a aprender a programar?

Depende do seu jeito de 'copiar e modificar'.

Se você vai no chutômetro, sem entender o pq dele funcionar, vai ser eternamente dependente dos outros.

Se você copia, modifica, tenta melhorar e entender o funcionamento completo do código, o que certamente vai incluir algum estudo, como o colega W. Bruno falou.

 

Na década de 70 os produtos japoneses eram conhecidos por sua péssima qualidade, comparável aos produtos chineses de hoje.

De tanto copiar, eles acabaram aprendendo como fazer, e digo mais, a fazer melhor. Hoje, em quase todas as áreas, desde eletrônicos a automóveis, produtos japoneses são famosos por primar por sua qualidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende do seu jeito de 'copiar e modificar'.

Se você vai no chutômetro, sem entender o pq dele funcionar, vai ser eternamente dependente dos outros.

Se você copia, modifica, tenta melhorar e entender o funcionamento completo do código, o que certamente vai incluir algum estudo, como o colega W. Bruno falou.

 

Na década de 70 os produtos japoneses eram conhecidos por sua péssima qualidade, comparável aos produtos chineses de hoje.

De tanto copiar, eles acabaram aprendendo como fazer, e digo mais, a fazer melhor. Hoje, em quase todas as áreas, desde eletrônicos a automóveis, produtos japoneses são famosos por primar por sua qualidade.

 

 

E Amigo eu vou te mostrar como esta meu nível de raciocínio, ainda nao esta funcionando por tanto se poder ajudar fico grato e aprendo...

 

tenho dois arquivos...

 

 

 

logar.php:

<?php

include('conectar_bd.php');

 

$usuario = $_POST['login'];

$senha = $_POST['senha'];

 

$result = mysql_query("SELECT * FROM cadastro WHERE login='{$_POST['login']}' and senha='{$_POST['senha']}'");

 

$num_rows = mysql_num_rows($result);

 

if($num_rows == 1 AND session_start())

{

$_SESSION['login'] = $_POST['login'];

$_SESSION['senha'] = $_POST['senha'];

header('location:pagina_segura.php');}

else

{echo("<h1>Usuario ou senha Incorretos</h1>");}

?>

 

 

Cadastro.php:

<html>

<title>???? ??</title>

<body bgcolor='red'>

<?php

include ('conectar_bd.php');

$login = $_POST['login'];

$senha = $_POST['senha'];

$email = $_POST['email'];

$nome = $_POST['nome'];

 

$query = mysql_query("INSERT INTO cadastro VALUE('$login','$senha','$email','$nome')");

 

if($query) {

 

echo'<center><font color="#ffffff" size="6">CADASTRO EFETUADO COM SUCESSO!!!<p>

<a href="index.php">Voltar</a></center>';

 

}

 

else

{

 

echo'<center><h1>FOI MAL JÁ TEM UM CLIENTE USANDO ESSE USUARIO<h1/></center>';

 

}

 

?>

 

</html>

 

 

Tentando unir os dois e poupar arquivos desmembrados.(Não funcionando, mas se alguém ajudar fico grato!!)

<?php

include('conectar_bd.php');

 

if($_POST['txt-enviar'])//Inicio Enviar

{

$usuario = $_POST['login'];

$senha = $_POST['senha'];

print_r("$usuario");

print_r("$senha");

$result = mysql_query("SELECT * FROM cadastro WHERE login='{$_POST['login']}' and senha='{$_POST['senha']}'");

 

$num_rows = mysql_num_rows($result);

}

if($num_rows == 1 AND session_start())

{

$_SESSION['login'] = $_POST['login'];

$_SESSION['senha'] = $_POST['senha'];

header('location:pagina_segura.php');

}

else

{

echo("<h1>Usuario ou senha Incorretos</h1>");

}//fim

 

if($_POST['txt-cadastro'])//Inicio cadastro

{

$login = $_POST['login'];

$senha = $_POST['senha'];

$email = $_POST['email'];

$nome = $_POST['nome'];

$query = mysql_query("INSERT INTO cadastro VALUE('','$login','$senha','$email','$nome')");

}

if($query)

{

echo'<center><font color="#ffffff" size="6">CADASTRO EFETUADO COM SUCESSO!!!<p>

<a href="index.php">Voltar</a></center>';

}

 

else

{

echo'<center><h1>CLIENTE OU USANDO INVALIDO<h1/></center>';

}//Fim

 

 

 

 

 

 

 

?>

 

veja se meu pensamento esta correto, vou ficar muito feliz em ser avaliado amigos

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

include('conectar_bd.php');

 

if( $verifica_acao=="login")

{

$usuario = $_POST['login'];

$senha = $_POST['senha'];

$result = mysql_query("SELECT * FROM cadastro WHERE login='{$_POST['login']}' and senha='{$_POST['senha']}'");

 

$num_rows = mysql_num_rows($result);

 

if($num_rows == 1 AND session_start())

{

$_SESSION['login'] = $_POST['login'];

$_SESSION['senha'] = $_POST['senha'];

header('location:pagina_segura.php');

}

 

else

{

echo("<h1>Usuario ou senha Incorretos</h1>");

}

 

}

 

if($verifica_acao=="registrar")

{

$login = $_POST['login'];

$senha = $_POST['senha'];

$email = $_POST['email'];

$nome = $_POST['nome'];

 

 

$query = mysql_query("INSERT INTO cadastro VALUE('','$login','$senha','$email','$nome')");

 

echo "Cadastro realizado com sucesso";

}

 

 

?>

 

Esta funcionando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia,

 

Eu acho melhor inserir o endereço da imagem no banco de dados e upar numa pasta

Eu já passei vários sufocos com imagens e espero não ter mais tantos problemas com isso rsrs

 

<?php
$alterardados=$_POST["alterardados"];
$nome_temporario=$_FILES["foto"]["tmp_name"];
$nome_real=$_FILES["foto"]["name"];
if($nome_temporario<>""){
copy($nome_temporario,"fotos/$nome_real"); 
$endereco="fotos/".$nome_real;
}

//Agora eu insiro e endereço dessa imagem no bd.
$endereco="fotos/".$nome_real;

Insert into bd(x,imagem) values('$xx','$endereco')

//Depois eu insiro essa imagem na página. Isso é legal na fase de teste, pq ai nem precisa conferir se foi upada no diretório

while($row = $stm->fetch()) {

  $endereco=$row['endereco'];
  $this->endereco=$endereco;
 }

?> 
<img src="<?php echo $endereco; ?>" width="70" height="70" >

 

Também concordo com oq o Henrique Barcelos disse. Eu vejo de forma didática passar códigos, estudar códigos dos demais, até pq tem muita diferença de código pra código, e isso ja me força a estudar pra entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia,

 

Eu acho melhor inserir o endereço da imagem no banco de dados e upar numa pasta

Eu já passei vários sufocos com imagens e espero não ter mais tantos problemas com isso rsrs

 

<?php
$alterardados=$_POST["alterardados"];
$nome_temporario=$_FILES["foto"]["tmp_name"];
$nome_real=$_FILES["foto"]["name"];
if($nome_temporario<>""){
copy($nome_temporario,"fotos/$nome_real"); 
$endereco="fotos/".$nome_real;
}

//Agora eu insiro e endereço dessa imagem no bd.
$endereco="fotos/".$nome_real;

Insert into bd(x,imagem) values('$xx','$endereco')

//Depois eu insiro essa imagem na página. Isso é legal na fase de teste, pq ai nem precisa conferir se foi upada no diretório

while($row = $stm->fetch()) {

  $endereco=$row['endereco'];
  $this->endereco=$endereco;
 }

?> 
<img src="<?php echo $endereco; ?>" width="70" height="70" >

 

Também concordo com oq o Henrique Barcelos disse. Eu vejo de forma didática passar códigos, estudar códigos dos demais, até pq tem muita diferença de código pra código, e isso ja me força a estudar pra entender.

 

So que me diga uma coisa dessa forma sera que a gente realmente aprende ?

digo, sera que um dia eu vou sentar na minha cadeira e desenvolver uma aplicação na web vou poder me chamar de programador ?

 

Codigo pronto e funcionando:

 

Este codigo e para salvar somente o endereço da imagem no BANDO DE DADOS, e a imagem dentro de uma pasta.

 

nesse codigo nao e necessario criar a pasta o proprio codigo cria a pasta para guardar as imagems

vai ser dividido em trés partes,

 

somente o formulario:

 

<div id="foto">

<form name = "form1" method = "post" action ="enviar_foto.php" enctype ="multipart/form-data"><BR>

<input type ="file" name ="arquivo"><BR>

<input type ="submit" name ="Submit" value ="Enviar">

</div>

 

 

 

 

</html>

 

Enviar o endereço para o MYSQL e a imagem para a pasta:

 

<?php

 

//Fabyo Guimaraes

 

//se existir o arquivo

if(isset($_FILES["arquivo"])){

 

$arquivo = $_FILES["arquivo"];

 

$pasta_dir = "arquivos/";//diretorio dos arquivos

//se não existir a pasta ele cria uma

if(!file_exists($pasta_dir)){

mkdir($pasta_dir);

}

 

$arquivo_nome = $pasta_dir . $arquivo["name"];

 

// Faz o upload da imagem

move_uploaded_file($arquivo["tmp_name"], $arquivo_nome);

 

//conecta no banco

include('conectar_bd.php');

 

//aqui salva no banco o path da foto

 

mysql_query("INSERT INTO foto VALUES ('','$arquivo_nome')");

 

 

}

 

?>

 

 

Mostrar a foto:

 

 

<?php

//Autor Fabyo Guimaraes

 

//conecta no banco

 

include('conectar_bd.php');

 

//seleciona a tabela

 

$sql = mysql_query("SELECT * FROM foto");

 

 

 

while($row = mysql_fetch_array($sql))

{

 

$fotos = $row["fotos"];

 

echo "<img src=\"$fotos\"><br><br>";

}

 

echo"<br>1";

var_dump("$sql");

echo"<br>2";

var_dump("$foto");

echo"<br>3";

var_dump("$foto");

 

?>

 

pronto pessoal esta funcionando agora vou pensar em alguma coisa e ver se resolvo e coloco ai pra voces.

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.