Ir para conteúdo

POWERED BY:

Arquivado

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

marcio.theis

Salvar arquivo no banco de dados

Recommended Posts

Bom dia.

 

Pessoal, existe uma maneira de ao fazer o upload do arquivo ele ser salvo dentro de um campo IMAGE do SQL Server? No caso precisamos permitir que o usuário envie qualquer tipo e tamanho de arquivo, mas ele precisa ser salvo no banco de dados, isso porque tem outros sistemas que já inserem e lêem esses arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É possível. Basta pegar o binário do arquivo com fread, por exemplo.

 

Mas saiba que isso pesa o BD. O ideal seria salvar só o path da imagem no BD e manter o arquivo no sistema de arquivos

 

 

 

Já tentamos usando o fread, mas sem sucesso. Por acaso tem algum exemplo disponível?

Sem problemas quanto ao BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

descreva melhor os problemas. Poste mensagens de erro.

Sem elas fica difícil ajudar.

 

 

Veja o teste que fiz:

$img = '/home/beraldo/Imagens/125374562981.jpg';

header( 'content-type: image/jpeg' );

echo file_get_contents( $img );

 

Isso exibe a imagem na tela

 

o que você precisa é salvar o retorno de file_get_contents no banco e depois exibir na tela, dando echo, depois de definir o header corretamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

               $tamanho = GetImageSize($diretorioArquivo);
               $mime = $tamanho['mime'];
               $arqInsert = file_get_contents($diretorioArquivo);
               header("Content-type: $mime");
               header("Content-Length: ".strlen($arqInsert));

 

 

 

 

Erro:

 

Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark after the character string 'PK'. (severity 15) in C:\Arquivos de programas\AppServ\www\manutec\inc\funcao.php on line 4

Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near 'PK'. (severity 15) in C:\Arquivos de programas\AppServ\www\manutec\inc\funcao.php on line 4

Warning: mssql_query() [function.mssql-query]: Query failed in C:\Arquivos de programas\AppServ\www\manutec\inc\funcao.php on line 4
Erro no Banco de Dados

Ocorreu um erro no banco de dados durante a execução da query: INSERT INTO TAREFAFIGURA (NUTAREFAFIGURA, FGFIGURA) VALUES (4, 'PK

Não coloquei todo o erro pois é gigante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

os erros são do PHP, mas referentes à query do SQL Server, que não está no código acima

 

Use addslashes(). Provavelmente antes do PK foi gerado um caractere especial que fechou a string de consulta e gerou o erro

 

 

Dica: Crie a string de consulta e dê um echo nela para ver na tela como está sendo enviada a query ao SGBD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um teste com arquivo .txt e envia certinho, consigo abrir depois, tudo certo.

Mas os outros formatos não funciona, sempre da erro no insert, mesmo colocando o addslashes(). Em arquivos de imagem apresenta o erro "A imagem contém erros e não pode ser exibida."

 

Pelo visto não tem como fazer, vou procurar outra solução para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é possível sim. Não conheço SQL Server, mas deve ter um tipo de campo para isso.

 

Use esta função para exibir o erro gerado pelo SGBD:

http://www.php.net/manual/en/function.mssql-get-last-message.php

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.