Ir para conteúdo

Arquivado

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

PhantOmL0rd

Inserção de imagens no banco de dados Postgres

Recommended Posts

Ae galera, beleza?

 

Estou precisando de ajuda aqui, preciso inserir imagem num campo bytea do postgres, só que não estou conseguindo...

 

Segue ae a tentativa:

 

<?php
include_once $_SERVER['DOCUMENT_ROOT'].'/app/controllers/base_controller.php';

class ImgController extends BaseController
{
public function gravar()
{
	$arq  = $_FILES['imagem']['tmp_name'];	//O local temporário que se cria quando o arquivo é enviado.
	$conteudo = addslashes(fread(fopen($arq, "r"), filesize($arq))); /*lê o arquivo carregado pelo usuário e faz o escape das aspas simples, aspas duplas, de barras invertidas e NULLs com barras invertidas */			

	$varConexao = Conexao::getPGConn();
	$varSQL = "insert into imagem_obra (fid_fco, jpg_grande) values ('6236', lo_import('".addslashes($arq)."'))";
	$varResultado = pg_query($varConexao,$varSQL);

	pg_close ($varConexao);/*fecha a conexão com banco*/
}			
}



if($_POST['txtLocal'])
{
$ctrl = new ImgController();
$ctrl->gravar();
}

 

Dessa forma esta dando o seguinte erro:

Warning: pg_query() [function.pg-query]: Query failed: ERRO: coluna "jpg_grande" é do tipo bytea mas expressao é do tipo oid LINE 1: ...imagem_obra (fid_fco, jpg_grande) values ('6236', lo_import(... ^ HINT: Voce precisara¡ reescrever ou converter a expressao. in C:\xampp\htdocs\app\controllers\teste_img\teste_img.php on line 13

 

O erro, pelo q eu entendi é que a forma q estou tentando é para campos do tipo oid, mas no artigo q eu li tava ensinando dessa forma para tipo bytea. Preciso de uma forma que insira no tipo bytea.

 

Ajudem ae por favor...

 

Desde já agradecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém poderia me ajudar???

 

Mudei o código para a seguinte forma:

$fco 		= $_POST['fco'];
$arquivo	= fopen($_FILES['imagem']['tmp_name'],'r');
$dados 		= fread($arquivo, filesize($_FILES['imagem']['tmp_name']));
$dados 		= addslashes($dados);

$sql = 'insert into imagem_obra (fid_fco, jpg_grande)
       values ('.$fco.', '.$dados.')';

$varConexao = Conexao::getPGConn();
$varResultado = pg_query($varConexao, $sql);
pg_close($varConexao);

 

Só que ainda não está funcionando da dando o seguinte erro:

Warning: pg_query() [function.pg-query]: Query failed: ERRO: sequencia de bytes e invalida para codificacao "UTF8": 0xff HINT: Este erro pode acontecer tambem se a sequencia de bytes nao corresponde a codificacao esperado pelo servidor, que e controlada por "client_encoding". in C:\xampp\htdocs\app\controllers\imagem\imagem_controller.php on line 20

 

Estou precisando bastante disso, quem me puder ajudar aee.

 

Vlws

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.