ERRO AO GRAVAR FOTOS NO SERVIDOR PELA ESTACAO

MHDSERAFS 21/10/2011 23:41:14
#387391
AMIGOS, BOA NOITE!

Utilizo este codigo para buscar a imagem e gravar na pasta determinada

Private Sub escolherfoto()
Dim origem As String
Dim destino As String
Dim novonome As String
Try
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
origem = OpenFileDialog1.FileName

destino = [Ô]C:\dietnet\dietnet\Logos\[Ô]
novonome = NOMETextBox.Text + [Ô].jpeg[Ô]
TXTORIGEM.Text = origem
TXTDESTINO.Text = destino & novonome
LOGOPictureBox.Image = Image.FromFile(origem & LOGOPictureBox.Text)

End If
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]ERRO AO ABRIR FOTO.[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

End Sub

Private Sub SALVARFOTO()
Try
FileCopy(TXTORIGEM.Text, TXTDESTINO.Text)
LOGOPictureBox.Image.Dispose()
Catch ex As Exception


End Try
End Sub

meu problema:
ao abrir o sistema pela estação eu busquei a imagem porem ao gravar deu erro do caminho...
até sei que o erro esta no caminho da gravação...
como faço para a imagem ser gravada no servidor?

grato
MHDSERAFS 21/10/2011 23:55:14
#387393
ESTAVA PENSANDO...

eu uso estas conexao:

[Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\banco\diet.mdb[Ô]
Dim conecta As String = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source =..\debug\Banco\diet.mdb[Ô]

gostaria de no caminho onde gravar a imagem
destino = [Ô]C:\dietnet\dietnet\Logos\[Ô]
no lugar do C...
ele buscar o caminho da pasta do banco...
WEBSTERGONTIJO 22/10/2011 00:25:18
#387394
Boa noite.....

Vou te passar um codigo para vc pegar o caminho onde sua aplicaçao ta rodando.. isso e a raiz do seu aplicativo.. ai vc decide se vai colocar umas pasta dentro da raiz chamada logos...


Dim caminho As String = Application.StartupPath

Se ajudou encerre o topico....

Abraços
PROFESSOR 22/10/2011 00:30:07
#387395
Vamos simplificar um pouco? Na mesma sub, selecionar a imagem e salvar na subpasta Logos, ok?
Acrescentei alguns comentários com umas [Ô]firulas[Ô], mas basicamente, seria assim:

    [ô][ô][ô] <summary>
[ô][ô][ô] Selecionar uma imagem JPEG e salvá-la na sub-pasta Logos.
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Private Sub pickPic()
Dim ofd As New OpenFileDialog
Try
With ofd
.Title = [Ô]Selecione a imagem:[Ô]
.Filter = [Ô]Arquivos Joint Photographic Experts Group (*.jpg;*.jpe;*.jpeg;*.jp2)|*.jpg;*.jpe;*.jpeg;*.jp2[Ô]
.FilterIndex = 0
.Multiselect = False
.ShowReadOnly = False
.SupportMultiDottedExtensions = False
If (.ShowDialog = Windows.Forms.DialogResult.OK) Then
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Aqui estamos usando a pasta da aplicação, subpasta [Ô]Logos[Ô].
Dim pastaDestino As String = Environment.CurrentDirectory
If pastaDestino.EndsWith([Ô]\[Ô]) = False Then pastaDestino &= [Ô]\[Ô]
pastaDestino &= [Ô]Logos\[Ô]
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Agora, o nome do arquivo.
Dim fi As New IO.FileInfo(.FileName)
Dim origem As String = fi.FullName
Dim arquivo As String = fi.Name
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Montar o destino
Dim destino As String = String.Format([Ô]{0}{2}[Ô],
pastaDestino, arquivo)
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Finalmente, salvar a imagem.
Try
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Pode ocorrer falha de gravação por ausência de
[ô] permissão de escrita. Temos de tratar esta possibilidade.
My.Computer.FileSystem.MoveFile(origem, destino,
True, FileIO.UICancelOption.DoNothing)
[ô] Carregar a imagem:
LogoPictureBox.Image = Drawing.Bitmap.FromFile(origem)
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Também é possível utilizar um Bitmap para a gravação.
[ô] Comente a linha de gravação mais acima,
[ô] descomente as linhas abaixo e teste.
[ô]Dim bmp As Drawing.Bitmap = Drawing.Bitmap.FromFile(origem)
[ô]bmp.Save(destino, Imaging.ImageFormat.Jpeg)
[ô]bmp.Dispose()
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Para salvar uma miniatura ao invés da imagem real,
[ô] descomente as linhas á seguir:
[ô]Dim x As Integer = 45 [ô]pixels (largura)
[ô]Dim y As Integer = 45 [ô]pixels (altura)
[ô]Dim tbn As Drawing.Bitmap = Drawing.Bitmap.FromFile(origem).GetThumbnailImage(x, y, Nothing, Nothing)
[ô]tbn.Save(destino, Imaging.ImageFormat.Jpeg)
[ô]tbn.Dispose()

[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Para utilizar a imagem como um ícone,
[ô] descomente as linhas á seguir:
[ô]Dim bsp As Drawing.Bitmap = Drawing.Bitmap.FromFile(origem)
[ô]Dim ponteiro As IntPtr = bsp.GetHicon
[ô]Me.Icon = Drawing.Icon.FromHandle(ponteiro)
[ô]bsp.Dispose()
Catch ex As IO.IOException
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Este é um pequeno [ô]truque[ô] para obter a descrição
[ô] mais completa de um Exception.
Dim msgErro As String = String.Format([Ô]{0}{1}[Ô], ex.Message, vbNewLine)
While ex.InnerException IsNot Nothing
ex = ex.InnerException
msgErro &= String.Format([Ô]{0}{1}[Ô], ex.Message, vbNewLine)
End While
ex = New Exception(msgErro)
MessageBox.Show(ex.Message, [Ô]Gravação[Ô], MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End If
End With
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]ERRO AO ABRIR FOTO.[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub



PROFESSOR 22/10/2011 01:00:07
#387397
Ok, Salvar as imagens então na pasta do banco de dados.

    [ô][ô][ô] <summary>
[ô][ô][ô] Esta rotina retorna a pasta dos dados á partir de
[ô][ô][ô] uma ConnectionString no padrão OleDb 32 bits.
[ô][ô][ô] </summary>
[ô][ô][ô] <returns>String.</returns>
[ô][ô][ô] <remarks></remarks>
Private Function PastaDoServidor() As String
[ô]Se instalado para todos os usuários...
Dim ret As String = Application.CommonAppDataPath
Try
If (ret.Trim.Length = 0) Then
[ô]Se instalado apenas para aquele usuário...
ret = Application.UserAppDataPath
End If
If IO.Directory.Exists(ret) = False Then
[ô]Se copiado manualmente...
ret = Environment.CurrentDirectory
End If
Catch ex As Exception
End Try
Return String.Format([Ô]{0}\[Ô], ret)
End Function


[ô][ô][ô] <summary>
[ô][ô][ô] Selecionar uma imagem JPEG e salvá-la na pasta dos dados da aplicação.
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Private Sub pickPic()
Dim ofd As New OpenFileDialog
Try
With ofd
.Title = [Ô]Selecione a imagem:[Ô]
.Filter = [Ô]Arquivos Joint Photographic Experts Group (*.jpg;*.jpe;*.jpeg;*.jp2)|*.jpg;*.jpe;*.jpeg;*.jp2[Ô]
.FilterIndex = 0
.Multiselect = False
.ShowReadOnly = False
.SupportMultiDottedExtensions = False
If (.ShowDialog = Windows.Forms.DialogResult.OK) Then
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Aqui estamos usando a pasta dos dados da aplicação.
Dim pastaDestino As String = PastaDoServidor()
If pastaDestino.EndsWith([Ô]\[Ô]) = False Then pastaDestino &= [Ô]\[Ô]
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Agora, o nome do arquivo.
Dim fi As New IO.FileInfo(.FileName)
Dim origem As String = fi.FullName
Dim arquivo As String = fi.Name
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Montar o destino
Dim destino As String = String.Format([Ô]{0}{2}[Ô],
pastaDestino, arquivo)
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Finalmente, salvar a imagem.
Try
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Pode ocorrer falha de gravação por ausência de
[ô] permissão de escrita. Temos de tratar esta possibilidade.
My.Computer.FileSystem.MoveFile(origem, destino,
True, FileIO.UICancelOption.DoNothing)
[ô] Carregar a imagem:
LogoPictureBox.Image = Drawing.Bitmap.FromFile(origem)
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Também é possível utilizar um Bitmap para a gravação.
[ô] Comente a linha de gravação mais acima,
[ô] descomente as linhas abaixo e teste.
[ô]Dim bmp As Drawing.Bitmap = Drawing.Bitmap.FromFile(origem)
[ô]bmp.Save(destino, Imaging.ImageFormat.Jpeg)
[ô]bmp.Dispose()
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Para salvar uma miniatura ao invés da imagem real,
[ô] descomente as linhas á seguir:
[ô]Dim x As Integer = 45 [ô]pixels (largura)
[ô]Dim y As Integer = 45 [ô]pixels (altura)
[ô]Dim tbn As Drawing.Bitmap = Drawing.Bitmap.FromFile(origem).GetThumbnailImage(x, y, Nothing, Nothing)
[ô]tbn.Save(destino, Imaging.ImageFormat.Jpeg)
[ô]tbn.Dispose()

[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Para utilizar a imagem como um ícone,
[ô] descomente as linhas á seguir:
[ô]Dim bsp As Drawing.Bitmap = Drawing.Bitmap.FromFile(origem)
[ô]Dim ponteiro As IntPtr = bsp.GetHicon
[ô]Me.Icon = Drawing.Icon.FromHandle(ponteiro)
[ô]bsp.Dispose()
Catch ex As IO.IOException
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
[ô] Este é um pequeno [ô]truque[ô] para obter a descrição
[ô] mais completa de um Exception.
Dim msgErro As String = String.Format([Ô]{0}{1}[Ô], ex.Message, vbNewLine)
While ex.InnerException IsNot Nothing
ex = ex.InnerException
msgErro &= String.Format([Ô]{0}{1}[Ô], ex.Message, vbNewLine)
End While
ex = New Exception(msgErro)
MessageBox.Show(ex.Message, [Ô]Gravação[Ô], MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End If
End With
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]ERRO AO ABRIR FOTO.[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub


Isto acima é para aplicações WinForms, caminho nativo para os dados.
Para aplicações Web, também no caminho nativo, a propriedade DataDirectory resolve o problema.
Agora, se a pasta estiver na rede, tanto faz WinForms ou Web, você deverá utilizar o registro do mapeamento dessa pasta. Para a Web, um xConnectionStringBuilder [Ô]mata[Ô] á partir da string de conexão, caso não seja um IP de serviço.
MHDSERAFS 22/10/2011 01:23:34
#387399
amigos...

quanto ao camino do startupatch, como faço direcionar para a pasta logos que fica no diretorio do app

quanto ao pickpic , esta dando erro , e não entendi a pare de 0 e 2 e 0 e 1

MHDSERAFS 22/10/2011 02:19:13
#387401
amigos...
]muito obrigado mesmo...
consegui salvar na pasta que queria...
MHDSERAFS 26/10/2011 21:42:28
#387836
amigos, pensei que esta tudo ok , mas vi que não...

o que esta acontecendo...
estou usando
Dim caminho As String = Application.StartupPath

porém se eu abro o sistema no servidor o caminho da imagem fica gravado no banco com o c:\...e se tento abrir pela estação diz que o caminho é invalido...
ALTAIR148 26/10/2011 21:46:17
#387837
Tá mas essa imagem você pega por uma pasta compartilhada na rede?
MHDSERAFS 26/10/2011 21:59:57
#387838
eu faço assim...

Private Sub escolherfoto()
Dim origem As String
Dim novonome As String
Dim caminho2 As String = [Ô]\logos\[Ô]
Dim caminho As String = Application.StartupPath
Try
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
origem = OpenFileDialog1.FileName

novonome = NOMETextBox.Text + [Ô].jpeg[Ô]
TXTORIGEM.Text = origem

TXTDESTINO.Text = caminho & caminho2 & novonome
LOGOPictureBox.Image = Image.FromFile(origem & LOGOPictureBox.Text)

End If
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]ERRO AO ABRIR FOTO.[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)


End Try
End Sub

e pasta do sistema esta compartilhada
ALTAIR148 26/10/2011 22:01:50
#387839
então amigo, me mostra como que fica o caminho da imagem gravada no banco.
Página 1 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas