Fotos no PHP

Tsunamy_boy

Banido
Gostaria de guardar fotos na minha base de dados (mySql)
Gostaria de saber qual o tipo de dados do campo "Foto" e o codigo em PHP para a inserir e listar.

Muito obrigado
 
Última edição pelo moderador:
O que eu tenho é uma pasta onde são guardadas as fotos e na base de dados o link para elas.
mas isto é pouco pratico...

Mas sejamos sinceros: Mais vale fazer backup de uma base de dados e de 10gigas de ficheiros do que fazer backup de uma base de dados de 10GB :x

Mas isto sou eu... lol
 
Brigadão já agora sabes o que significa isto:
LBL_IMAGE->setPixmap(QPixmap::fromImage(image));
Para que serve o "->" é uma duvida que tenho a muito.
 
Isso é um PHP orientado a objectos. Se ainda não conheces o paradigma, vai ser difícil perceberes isso.
Em resumo, há uma classe:
PHP:
class qualquercoisa {
 $qualquervariavel = "abc";
 function funcao($isto, $aquilo) {
  // faz coisas
 }
}
que por si só é inútil. Mas podes criar uma instância de um objecto baseado nessa classe:
PHP:
$Objecto = new qualquercoisa;
e agora tens a instância do objecto "$Objecto" criada.
Podes agora alterar a variável $qualquervariavel desse objecto específico
PHP:
$Objecto->qualquervariavel = "cba";
Ou, se preferires, chamas a função que essa classe tem
PHP:
$Objecto->funcao("a", "b");
Mas se não tiveres nenhuma instância desse objecto, podes chamar a função automaticamente a partir do nome da classe:
PHP:
qualquercoisa::funcao("a", "b");

Isto provavelmente é chinês para ti :x mas expliquei o melhor que consegui.

LBL_IMAGE->setPixmap(QPixmap::fromImage(image));

"LBL_IMAGE->setPixmap(": chamou a função "setPixmap" do objecto "LBL_IMAGE", passando como parâmetro:
"QPixmap::fromImage(image)": chamou a função "fromImage" da classe "QPixmap", e passou como parâmetro "image".

Para aprenderes mais coisas, vai ao Google. Vê isto, que me pareceu útil: http://www.devarticles.com/c/a/PHP/Object-Oriented-Programming-in-PHP/
 
Subtilezas.
Para acederes a uma variável ou função de uma classe usas o "::".
O "->" serve para acederes a uma variável ou função de um objecto, que seja uma instância de uma classe.
Como disse,
PHP:
classe::função(parâmetros)
ou
PHP:
$objecto = new classe;
$objecto->função(parâmetros)
 
Pra não subcarregar a BD utiliza apenas o nome do ficheiro das imagens.

Por ex:
crias um atributo imagem do tipo text em que ai só pões o nome das imagens e o formato(imagem.jpg)

depois crias uma pasta onde vao estar os ficheiros das imagens.

No php para inserir fazes assim:

PHP:
$caminho = "imagens/";
$filename = $_FILES['imagem']['name'];

if(is_uploaded_file($_FILES['imagem']['tmp_name']))
{
     move_uploaded_file($_FILES['imagem']['tmp_name'],$caminho . $filename);
     $inserir = mysql_query("INSERT INTO tuaTabela VALUES( teusValores, '$filename')", $ligacao) or die(mysql_error());
                   
}
Neste caso o file field do formulario tem o nome imagem, se tivesse o nome img mudavas apenas essas partes:

$filename = $_FILES['img]['name'];
$_FILES['img']['tmp_name']


espero ter ajudado... :)
 
hmmmmm

Não é por uma base de dados ficar pesada que se deve desaconselhar o armazenamento em tabelas.

O Mysql aguenta com vários TB dependendo do sistema e não existe uma quebra significativa da performance.

Eu até prefiro fazer o backup de 10 gigas de base de dados do que de ficheiros. Ficheiros serão milhares, base de dados é só uma.

Não se deve armazenar porque deixas de poder colocar hiperligações directas para a imagem. É por isso.

Saudações
 
Não se deve armazenar porque deixas de poder colocar hiperligações directas para a imagem. É por isso.
Além dessa razão, se um dia precisar de um ficheiro tem de ter o SGBD funcional e ter forma de questionar a BD e fazer o output no formato correcto... it's a PITA :-)
 
Back
Topo