Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

porcentaje de subida de archivo por FTP

Estas en el tema de porcentaje de subida de archivo por FTP en el foro de Visual Basic clásico en Foros del Web. hola, estoy haciendo un programa que sube archivos a un FTP. El caso es que me gustaría implementarle una barra de progreso, para cuando sube ...
  #1 (permalink)  
Antiguo 13/09/2007, 12:27
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 19 años, 1 mes
Puntos: 2
porcentaje de subida de archivo por FTP

hola, estoy haciendo un programa que sube archivos a un FTP.

El caso es que me gustaría implementarle una barra de progreso, para cuando sube un archivo pesado, saber elporcentaje que lleva subido.

Bueno, la idea que tenía era:

peso del archivo - (peso del archivo / datos transmitidos)

me daria el porcentaje transmitido del archivo. es decir, el progreso.

Lo que no se hallar es la cantidad de datos que he subido ya, es deicr los datos transmitidos.

Cómo puedo saber el tamaño que ya he subido??
Muchas gracias.
Elcódigo que uso es el siguiente:
Código:
public hOpen As Long, hConnection As Long, bRet As Long, Refrescar As Boolean
Public Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" _
(ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _
      ByVal lpszRemoteFile As String, _
      ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

Public Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" _
    (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
' Initializes an application's use of the Win32 Internet functions
Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

' User agent constant.

  Public Const scUserAgent = "vb wininet"

' Use registry access settings.
Public Const INTERNET_INVALID_PORT_NUMBER = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const FTP_TRANSFER_TYPE_BINARY = &H1
Public Const INTERNET_FLAG_PASSIVE = &H8000000
' Opens a HTTP session for a given site.
Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _
(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _
ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
                 
' Number of the TCP/IP port on the server to connect to.
Public Const INTERNET_OPTION_USERNAME = 28
Public Const INTERNET_OPTION_PASSWORD = 29
Public Const INTERNET_OPTION_PROXY_USERNAME = 43
' Type of service to access.
Public Const INTERNET_SERVICE_FTP = 1

' Closes a single Internet handle or a subtree of Internet handles.
Public Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer


Public Function subir_al_ser()
Dim ruta_carpeta As String
 Dim Servevidor As String, Usuario As String, Contraseña As String
 '----------------------------------------
  Servevidor = "FTP.SERVIDOR.COM"
 Usuario = "USUARIO"
 Contraseña = "CONTRASEÑA"
 '----------------------------------------
Info "Conectando..."
'hacemos la conexion
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
If hOpen <> 0 Then Info "Iniciado correctamente" Else Info "Error 3"
hConnection = InternetConnect(hOpen, Servevidor, INTERNET_INVALID_PORT_NUMBER, Usuario, Contraseña, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0)
If hConnection <> 0 Then Info "Conexión exitosa" Else Info "Error 1": Exit Function
'selecionamos la carpeta en el servidor donde guardo la imagen

bRet = FtpSetCurrentDirectory(hConnection, ruta_carpeta)
If bRet <> 0 Then Info "Subiendo al servidor..." Else Info "Error 2": Exit Function

bRet = FtpPutFile(hConnection, archivo_sel, nombre_ar_sel, FTP_TRANSFER_TYPE_BINARY, 0)
If bRet <> 0 Then Info "Actualizando..." Else Info "Error": Exit Function
'cierro la conexion
If hConnection <> 0 Then InternetCloseHandle (hConnection)
Info "Archivo subido"
  #2 (permalink)  
Antiguo 14/09/2007, 04:36
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 5 meses
Puntos: 2
Re: porcentaje de subida de archivo por FTP

No me voy a extender pero es algo complejo ya que se tiene que utilizar el 'método indirecto'... vamos, enviarlo por paquetes de datos. En la web de JM te puedes orientar un poco más de qué va todo esto: http://articulos.conclase.net/jm/pro....html#subapdo6
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:00.