elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema enviar archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 5 6 Ir Abajo Respuesta Imprimir
Autor Tema: Problema enviar archivo  (Leído 11,410 veces)
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Problema enviar archivo
« Respuesta #10 en: 1 Abril 2007, 19:32 pm »

A ver cambia esto:
Citar
Open "c:\capture.jpg" For Binary As #1
ar = Input(LOF(1), 1)
filesize = Len(ar)
Close #1

Por space(lof(1))  a ver si asi te funciona ademas en ningun momento haces un get para obtener los datos... y en la linea:

Código:
filesize = Len(ar)

pon FileLen("c:\capture.jpg") en vez de len ;)

Otra cosa, se te guarda bien la imagen en C:?? por q mira:
Código:
foto.SaveFile ("c:\" & "\capture12" & ".jpg")

No ves q hay dos \. Lo intentas guardar en C:\\capture12.jpg..

Aparte sigues aciendolo mal. Fijate:

SERVER:
Código:
WS.SendData "paco|" & filesize & ar

CLIENTE:
Código:
Case "paco"

No ves q paco solo se envia una vez mientras q los otros datos siguen llegando? asi no see acumulan, tienes q poner un interruptor como yo te e dicho (FIJATE EN EL CODE Q TE E PASADO!!!!), seria asi:



SERVER:
Código:
Private Sub command1_click() ' Te lo pongo en un boton y luego ya lo cambias
Dim foto As New cJpeg
Dim ar As String
Dim filesize As String
foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
foto.Quality = 50   ' aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso
foto.SampleScreen
foto.SaveFile ("c:\" & "capture" & ".jpg")

ws.SendData "Tam:" & FileLen("C:\capture.jpg") 'Enviamos el tamaño de la foto q acabamos de sacar

End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Dim Send As String
ws.GetData data

If Left(data, 8) = "SendFile" Then
Open "C:\Prueba.txt" For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1

ws.SendData Send
End If

End Sub




CLIENTE
Código:
Dim DataFile As String
Dim LenFile As Long
Dim Envio As Boolean

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
ws.GetData data

If Envio = True Then
DataFile = DataFile & data
ProgressBar1.Value = Len(DataFile)
If Len(DataFile) = LenFile Then
Open "C:\Prueba2.txt" For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente"
Envio = False
ProgressBar1.Value = 0
End If
End If

If Left(data, 4) = "Tam:" Then
LenFile = Mid(data, 5)
ProgressBar1.Max = LenFile
Envio = True
ws.SendData "SendFile"
End If


Asi te tiene q funcionar por mis coj***
1S4ludo


En línea

Jareth


Desconectado Desconectado

Mensajes: 334



Ver Perfil
Re: Problema enviar archivo
« Respuesta #11 en: 1 Abril 2007, 19:39 pm »

ajajajaj me rio de las capulladas que he hecho,xD.Gracias E0N pruebo y me tiene que ir por huevos sino me matas,xD.
Enga gracias y saludos.


En línea

vivachapas


Desconectado Desconectado

Mensajes: 612



Ver Perfil
Re: Problema enviar archivo
« Respuesta #12 en: 1 Abril 2007, 20:03 pm »

gracias por la respuesta Jareth
entonces segun entiendo podriamos reemplazar el codigo

Citar
left(datosS,7)

por un separador | y comprobrar si la primera parte es archivo... me parece q para mi programa iria mejor de esa forma...

es lo mismo no? segun entiendo
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Problema enviar archivo
« Respuesta #13 en: 1 Abril 2007, 20:08 pm »

Si, es mucho mejor

Puedes poner cualkier caracter q actue como separador y luego usar un split para partirlo ;)
En línea

vivachapas


Desconectado Desconectado

Mensajes: 612



Ver Perfil
Re: Problema enviar archivo
« Respuesta #14 en: 1 Abril 2007, 20:16 pm »

ok muchas gracias EON... por ahora la funcion q le puse es la tuya se la copie.. pero no se me es mas dificil de entender.. ahora con estos datos voy a hacer la mia ;)

gracias a todos
En línea

Jareth


Desconectado Desconectado

Mensajes: 334



Ver Perfil
Re: Problema enviar archivo
« Respuesta #15 en: 1 Abril 2007, 20:26 pm »

Yo solo decir que me va mal,la imagen me llega solo una parte de arriba,solo un cacho,no se en que fallo si el code es el de E0N.
Por cierto E0N,yo lo hacia con case osea enviaba "esto|" y hacia
case "esto" pero tu no lo haces asi,no se seguiré probando,peor solo me llega un cacho,que puede ser?
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Problema enviar archivo
« Respuesta #16 en: 1 Abril 2007, 23:40 pm »

Seguramente q me haya comido algun trozo de code por q lo e hecho aki directamente, sin el VB delante. Vamos a ver, prueva con esto:

Server:
Código:
Private Sub Form_Load()
ws.Close
ws.Connect "127.0.0.1", 2848
End Sub

Private Sub ws_Connect()
Dim foto As New cJpeg
Dim ar As String
Dim filesize As String
foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
foto.Quality = 50   ' aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso
foto.SampleScreen
foto.SaveFile ("C:\capture.jpg")

ws.SendData "Tam:" & FileLen("C:\capture.jpg")
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Dim Send As String
ws.GetData data

If Left(data, 8) = "SendFile" Then
Open "C:\capture.jpg" For Binary As #1
Send = Space(LOF(1))
Get #1, , Send
Close #1

ws.SendData Send
End If

End Sub



Cliete:
Código:
Dim DataFile As String
Dim LenFile As Long
Dim Envio As Boolean

Private Sub Form_Load()
ws.LocalPort = 2848
ws.Listen
Envio = False
End Sub

Private Sub ws_ConnectionRequest(ByVal requestID As Long)
ws.Close
ws.Accept requestID
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
ws.GetData data

If Envio = True Then
DataFile = DataFile & data
If Len(DataFile) = LenFile Then
Open "C:\capture2.jpg" For Binary As #1
Put #1, , DataFile
Close #1
DataFile = ""
MsgBox "El Fichero se a Enviado Correctamente"
Envio = False

'Una vez lo tenemos lo mostramos
Form4.Picture1.Picture = LoadPicture("C:\capture2.jpg")
End If
End If

If Left(data, 4) = "Tam:" Then
LenFile = Mid(data, 5)
Envio = True
ws.SendData "SendFile"
End If

Ya esta. Compilas eso (solo añadiendo un form4 con un picture box unos winsocks y los modulos cjeg) y deberia funcionarte bien.

Lo de usar left o | da igual. Es mejor usar el split la verdad asi q en tu caso el server deberia enviar
ws.SendData "Tam:|" & FileLen("C:\capture.jpg")
en vez de
ws.SendData "Tam:" & FileLen("C:\capture.jpg")

Y el cliente comprovar si es Tam: solamente, seria:
case"Tam:":
en vez de
If Left(data, 4) = "Tam:" Then

Pero vamos eso ya es q  tu lo adaptes. Si sigue sin funcionarte dimelo y te lo subo bien, por q esto  lo estoy haciendo sin provar ;)

1S4ludo
En línea

Jareth


Desconectado Desconectado

Mensajes: 334



Ver Perfil
Re: Problema enviar archivo
« Respuesta #17 en: 2 Abril 2007, 00:29 am »

Hola muchas gracias E0N por tu ayuda,pero solo me llega una parte de la imagen,un poco de la de arriba,son 139 kb y me llegan 1,36 kb.
No sé si soy yo pero estos code solo me hacen llegar eso.
Y eso que tu code lo he probado aparte y funciona 100%,el problema esta en algo mio....aqui va el code(igual es porque hay algo en un timer):

SERVIDOR
Código:
Private Sub Timer1_Timer()
Dim foto As New cJpeg

Dim filesize As String
foto.SetSamplingFrequencies 2, 2, 2, 2, 2, 2
foto.Quality = 50   ' aqui ajustas la calidad dsd 1 a 100 hasi bajas calidad bajas peso
foto.SampleScreen
foto.SaveFile ("c:\" & "capture" & ".jpg")

WS.SendData "tam:|" & FileLen("c:\capture.jpg")

Case "send"
Dim ya As String
Dim send As String
ya = FileLen("c:\capture.jpg")
Open "c:\capture.jpg" For Binary As #1
send = Space(LOF(1))
Get #1, , send
Close #1
WS.SendData "yas|" & send & "|" & ya
End Select

End Sub

 CLIENTE

Código:
Case "tam:"
Dim lenfile As Long
lenfile = Mid(sData(1), 5)
enviar "send|"
Dim ya As String
ya = sData(2)
Case "yas"
Dim datos2 As String
datos2 = datos2 & sData(1)
If Len(datos2) = ya Then
Open "c:\captura.jpg" For Binary As #1
Put #1, , datos2
Close #1
datos2 = ""
MsgBox "llegaron perfectamente"
End If


Bueno creo que es todo,a ver si hay algo que hago mal,o si me recomendais cambiar....
Muchas gracias a todos,que sé qeu soy mu pesao... :P
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Problema enviar archivo
« Respuesta #18 en: 2 Abril 2007, 00:45 am »

El mio aparte si te fucionaba no? por q ya me estaba preocupando xDD

Kita el timer. Haz q nada mas recibir una imagen haga peticion de la siguiente.
Tendrias q ponerlo en el cliente justo despues de el msgbox q dice "llegaron perfectamente".

1S4ludo
En línea

Jareth


Desconectado Desconectado

Mensajes: 334



Ver Perfil
Re: Problema enviar archivo
« Respuesta #19 en: 2 Abril 2007, 00:59 am »

Tu code funciona 100%,pero he quitado el timer y no me va,igual solo un trozo.
No se que puede ser,en vez de un timer esta en un case "captura" que se envia al dar al boton start y se vuelve a enviar despues del msgbox,eso he cambiado y nada,igual.
Has probado mi code,si te va a ti?
O si tiene errores,esque joder lo tengo ahi y no lo veo.
« Última modificación: 2 Abril 2007, 01:18 am por Jareth » En línea

Páginas: 1 [2] 3 4 5 6 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] Problema al abrir archivo para enviar « 1 2 3 »
Programación Visual Basic
ŞCØRPIØN-X3 25 11,469 Último mensaje 12 Mayo 2011, 23:34 pm
por ŞCØRPIØN-X3
Enviar a ftp archivo
Scripting
dian1919 4 3,852 Último mensaje 14 Octubre 2022, 21:27 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines