Ir para conteúdo

POWERED BY:

Arquivado

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

Julierme Felix

Salavano imagem no BD Access

Recommended Posts

Pessoal

Estou gravando imagens no BD access, não posso gravar o caminho.

Mas esta acontecendo um erro quando o site esta online, quando executo no localhost a imagem é gravada normalmente, mas online aparece que não encontrou o arquivo e mostra outro diretório diferente do diretorio do arquivo.

Exemplo vou colocar no banco a imagem que esta em c:\fotos\colegio.jpg

Quando executo localhost grava normal, mas quando executo online aparece a mensagem abaixo

"Could not find file "C:\WINDOWS\system32\colegio.JPG"."

 

Repare que o caminho é outro, e não estou conseguindo resolver isso.

Segue abaixo o codigo que estou usando para gravar a imagem no banco.

Private Function GravarImagem(ByVal codigoCliente As Integer) As Boolean
       Dim nomeArquivo As String = ""
       nomeArquivo = tbImagem.PostedFile.FileName

       If Len(nomeArquivo) <> 0 Then

           Dim fsFoto As FileStream
           fsFoto = New FileStream(nomeArquivo, FileMode.Open, FileAccess.Read, FileShare.Read)
           Dim fiFoto As FileInfo = New FileInfo(nomeArquivo)
           Dim Temp As Long = fiFoto.Length
           Dim lung As Long = Convert.ToInt32(Temp)
           Dim picture(lung) As Byte
           'le a imagem
           fsFoto.Read(picture, 0, lung)
           fsFoto.Close()
           '
           'cria um novo objeto command usando a stored procedure ja criada na base de dados
           Dim cmdFoto As New OleDbCommand("spCarregaFoto", cn)
           cmdFoto.CommandType = CommandType.StoredProcedure
           'recebe os parametros para a stored procedure spCarregaFoto
           Dim sql_codigoCliente = New OleDbParameter("CODIGO", codigoCliente)
           Dim sql_Foto As New OleDbParameter("IMAGEM", OleDbType.LongVarBinary)
           sql_Foto.Value = picture
           'adicona os parametros informados
           cmdFoto.Parameters.Add(sql_codigoCliente)
           cmdFoto.Parameters.Add(sql_Foto)
           'executa a stored procedures usando os parâmetros informados
           cn.Open()
           cmdFoto.ExecuteNonQuery()
           cmdFoto.Dispose()
           cn.Close()
           sql_Foto = Nothing
           picture = Nothing
           'Return True
           Exit Function
       End If
   End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é necessário utilizar a classe FileInfo, você pode converter para byte diretamente pelo controle HTML File Field, para utilizar classe FileInfo deve ser gravado o arquivo em algum lugar temporário no servidor, na sua máquina no localhost funcionou pois o servidor e o cliente são as mesmas máquinas

 

veja esse exemplo, esta em sql server, mas a parte de pegar os bytes é a mesma http://www.linhadecodigo.com.br/Artigo.aspx?id=337&pag=2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grato

Pela resposta,

Mas optei por gravar somente o caminho da imagem no banco, uma vez que estou usando banco access.

To fazendo o upload para uma pasta no servidor e armazenando no banco o caminho da imagem.

 

 

não é necessário utilizar a classe FileInfo, você pode converter para byte diretamente pelo controle HTML File Field, para utilizar classe FileInfo deve ser gravado o arquivo em algum lugar temporário no servidor, na sua máquina no localhost funcionou pois o servidor e o cliente são as mesmas máquinas

 

veja esse exemplo, esta em sql server, mas a parte de pegar os bytes é a mesma http://www.linhadecodigo.com.br/Artigo.aspx?id=337&pag=2

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.