Ir para conteúdo

POWERED BY:

Arquivado

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

LuisVieira

Pegar Imagem na tag canvas e salvar no banco de dados

Recommended Posts

$conn = new PDO('pgsql:host=localhost;dbname=banco', "root", "password")

$stmt = $conn->prepare('insert into table(img) values(:img)');
$stmt->bindValue(":img",$_POST["img"]);
$stmt->execute();
echo $stmt->rowCount();

:cry:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passei uma quantidade razoável de tutorias, não chegou nem a ver os links pelo jeito, se tivesse visto, acharia um tutorial decente.

 

Use esta lógica abaixo, senão conseguir contrate um freela.

 

http://www.fabiobiondi.com/blog/2012/10/export-and-save-a-screenshot-of-an-html5-canvas-using-php-jquery-and-easeljs/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa pelo aborrecimento Williams é q sou novo na programação e nunca tinha mexido com imagens e muito menos com o armazenamento delas no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams só olha meu codigo pra ver se ta certo

 

<?php

 

$data = $_REQUEST['base64data'];
$image = explode('base64,',$data);
$foto = file_put_contents('imagem.jpg', base64_encode($image[1]));
$sql="insert into cz072301(cz0723_arquivo,cz0723_boletim,cz0723_imagem) values('foto4.jpg',4205,:image)";
$conn = new PDO('pgsql:host=host;dbname=dbmame', "root", "senha");
$stmt = $conn->prepare($sql);
$stmt->bindValue(":image",$foto);
$stmt->execute();
$affected_rows = $stmt->rowCount();
echo $affected_rows;
?>
JQUERY
document.getElementById("save").addEventListener("click", function() {
var dataUrl = canvas.toDataURL('image/jpeg');
var boletim = $("#boletim").val();
var url = $('#baseurl').html()+'/laudos/salvarfotos/boletim/'+boletim;
$.ajax({
type: "POST",
url: url,
data: {
base64data : dataUrl
}
});
});

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
 
$data = $_REQUEST['base64data']; 
 
$image = explode('base64,',$data);

$arquivo = 'Nome do Arquivo';
$boletim = 'Numero do Boletim';
$nome_foto = 'nome_foto.png'; //Coloque o nome dinamico

file_put_contents('nome_pasta_onde_sera_armazenada_a_foto/'. $nome_foto, base64_encode($image[1]));
 

$sql = "INSERT INTO cz072301 (cz0723_arquivo, cz0723_boletim, cz0723_imagem) values (:arquivo,:boletim,:imagem)"; //Passe todos os parametros pelo bind 
 
//Depois de salvar no servidor, salve o path da imagem no db
$conn = new PDO('pgsql:host=host;dbname=dbmame', "root", "senha"); //Defina aqui as configurações do banco 

$stmt = $conn->prepare($sql);
$stmt->bindValue(":arquivo",$arquivo);
$stmt->bindValue(":boletim",$boletim);
$stmt->bindValue(":imagem",$nome_foto);
$stmt->execute();

$affected_rows = $stmt->rowCount();
echo $affected_rows;

Deixei o código bem comentado para não ter erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams Meu campo da imagem no banco de dados é do tipo OID não é bytea eu ainda não consegui salvar no banco de dados mais no meu servidor eu consegui salvar mas no banco ainda ñ deu. Desculpa estar encomodando tanto mais eu realmente preciso conseguir fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude o type deste campo "cz0723_imagem" para varchar com o tamanho 255

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não posso mudar o tipo do campo porque esse campo ja esta sendo usado pela minha empresa com o tipo OID entao eu preciso salvar como OID não posso salvar como varchar.Por isso estou apanhando tanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugestões:

 

De o nome da image, o mesmo dos dados inseridos e grave em um campo tipo enum a extensão do arquivo. ex(.jpeg,.png,etc)

 

Crie outro campo do tipo varchar na tabela para gravar o nome,

Crie outra tabela, grave a o path da image e id de relacionamento da tabela acima e faça um join para puxar estes dados.

 

Grave o Nome da imagem em um arquivo .txt, xml, .csv .csv, xls, .csv e faça a leitura depois de acordo como o ID

 

Enfim, meios alternativos é que não falta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams Falei com meu chefe e eu posso mudar o tipo do campo no banco só q eu preciso salvar a imagem direto no banco eu ñ posso salvar ele em nenhum servidor. É pra mim pegar da tag canvas e salvar direto no banco de dados.

Entendeu o que eu quis dizer?

E tem como eu fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só salvar o binario da imagem mesmo, no campo do type BYTEA

base64_encode($image[1])

Para imprimir, só passar o header do tipo da imagem antes da @var

base64_decode($cz0723_imagem)

do mais :google:

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.