AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Comunicación / Funciones FTP
  • Gestión del progreso de la transferencia
  • Timeout
  • Permisos de usuarios
  • Ruta relativa o absoluta
  • Servidor FTP de tipo AS/400 FTP
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
Transfiere un archivo o directorio de un servidor FTP al equipo actual.
WINDEV Nota: Para obtener rápidamente un solo archivo del servidor FTP, utilice la función FTPGetFile.
New in SaaS
Una nueva sintaxis para manipular variables de tipo ftpConnection está disponible a partir de WINDEV Suite SaaS 2025 - Update 2.
Para obtener más información, consulte Utilizar las novedades exclusivas de WINDEV Suite SaaS 2025.
WINDEVJavaCódigo de Usuario (UMC)
// Connect the current computer to the FTP server
ConnectionNumber = FTPConnect("192.54.12.8")
// Download the "/Document/File.txt" file found on the FTP server 
// in the "D:\Temp" directory on the current computer 
ResRetrieve = FTPGet(ConnectionNumber, "/Document/File.txt", "D:\Temp")
New in SaaS
WINDEVJavaCódigo de Usuario (UMC)
// Syntax not available in PHP
// Connect the current computer to the FTP server
MyFTPConnection is ftpConnection
MyFTPConnection.Server = "192.54.12.8"
FTPConnect(MyFTPConnection)

// Download the "/Document/File.txt" file found on the FTP server 
// in the "D:\Temp" directory on the current computer 
ResRetrieve = FTPGet(MyFTPConnection, "/Document/File.txt", "D:\Temp")
Sintaxis
<Result> = FTPGet(<FTP connection> , <File/Directory to retrieve> , <Destination file/directory> [, <WLanguage procedure> [, <Transfer mode>]])
<Result>: Booleano
  • True si se realizó la transferencia,
  • False en caso contrario. Para obtener más información sobre el error, utilice la función ErrorInfo con la constante errMessage.
    Nota: El resultado puede ser incorrecto en algunos servidores Unix. Es posible que no se encuentren los archivos o directorios existentes.
<FTP connection>: Entero o variable de tipo ftpConnection
<File/Directory to retrieve>: Cadena de caracteres
Nombre y ruta completa o relativa del archivo o directorio que se va a obtener. Este archivo o directorio se encuentra en el servidor FTP. Las distintas partes de la ruta están separadas por "barras oblicuas" ("/").
Nota: Los nombres de los directorios distinguen entre mayúsculas y minúsculas. Se deben utilizar las mismas mayúsculas y minúsculas que se utilizaron en el servidor FTP.
No se pueden utilizar caracteres comodín (* o?). Para obtener varios archivos, primero utilice la función FTPListFile para conocer el nombre de los archivos que se van a obtener.
Una ruta absoluta tiene el siguiente formato: "/<NombreDirectorio>/<NombreArchivo>". La jerarquía obtenida tiene el siguiente formato: "/<NombreDirectorio>/<NombreArchivo>".
Una ruta relativa tiene el siguiente formato: "<NombreDirectorio>/<NombreArchivo>". La jerarquía obtenida tiene el siguiente formato: "/<DirectorioActualServidor>/<NombreDirectorio>/<NombreArchivo>".
Si este parámetro es un directorio, se obtienen todos los archivos del directorio. Un directorio con el mismo nombre se crea en el equipo actual en la ubicación especificada por el parámetro <Destination file/directory>.
Si este parámetro es un archivo:
  • si el parámetro <Destination file/directory> es un directorio que se encuentra en el equipo actual, el archivo que se va a obtener se copia en el directorio de destino.
  • si el parámetro <Destination file/directory> es un archivo que se encuentra en el equipo actual, el archivo que se va a obtener se copia y se le asigna un nuevo nombre.
<Destination file/directory>: Cadena de caracteres
Nombre y ruta completa o relativa del archivo o directorio de destino. Se puede utilizar una ruta de tipo UNC.
<WLanguage procedure>: Nombre del procedimiento
Nombre de un procedimiento WLanguage llamado automáticamente para controlar el progreso de la transferencia. Este procedimiento puede ser un método global de clase (en el siguiente formato: <Nombre Clase>::<NombreMétodoGlobal>).
<Transfer mode>: Constante opcional de tipo Integer
Modo de transferencia utilizado:
ftpASCIIModeTransferencia realizada en modo ASCII. Este modo se utiliza para transferir archivos entre distintos sistemas operativos, por ejemplo, de UNIX a Windows. El archivo se entrega en el formato ASCII utilizado por el sistema receptor.
ftpBinaryMode
(Valor predeterminado)
Transferencia realizada en modo binario. El archivo es idéntico entre el envío y la recepción.
Observaciones
WINDEVJavaCódigo de Usuario (UMC)

Gestión del progreso de la transferencia

FTPGet es una función bloqueante. No se puede realizar ninguna otra acción hasta que se haya completado la transferencia actual.
Para verificar el progreso de la transferencia, la función FTPGet puede llamar automáticamente a <WLanguage procedure> a intervalos regulares (cada 64 KB).
Este procedimiento se declara de la siguiente manera:
PROCEDURE <Procedure name>(<Total size>, <Transferred size>)
donde:
  • <Total size> es un número entero que representa el tamaño total del archivo o directorio que se está transfiriendo.
  • <Transferred size> es un número entero que representa el número de bytes ya transferidos.
En este procedimiento, es posible:
  • mostrar una barra de progreso (utilizando un control Barra de progreso, por ejemplo),
  • saber si la transferencia ha finalizado (<Total size> = <Transferred size>).
La función FTPGet no se puede interrumpir hasta que no se hayan transferido todos los archivos. Para detener la función, utilice la siguiente línea de código en <Procedure name>:
RETURN False
En los demás casos (para continuar), <Procedure name> debe devolver True.
Si el procedimiento <Procedure name> no devuelve ningún valor (True o False), se genera un error.

Timeout

De forma predeterminada, todas las funciones FTP fallan si no se recibe ninguna respuesta del servidor FTP después de 20 segundos. Este tiempo puede modificarse:

Permisos de usuarios

Solo un usuario con permisos de lectura en el servidor FTP puede obtener información sobre los archivos o directorios que se encuentran en dicho servidor. En la mayoría de los casos, los usuarios "anónimos" tienen permisos de lectura.

Ruta relativa o absoluta

Las nociones de ruta relativa y ruta absoluta son de gran importancia en una aplicación FTP.
  • Una ruta que empiece por una barra oblicua se considera una ruta absoluta. Esta ruta es relativa a la raíz del servidor FTP (parámetro específico del servidor).
    Ej: /pub/usuario/JULIA
  • Si la ruta no empieza por una barra oblicua, se considera una ruta relativa, es decir, la ruta relativa al directorio actual. El directorio actual puede obtenerse o cambiarse con la función FTPCurrentDir.
Al conectarse a un sitio FTP, el directorio inicial ("home directory" del usuario) no necesariamente es la raíz del servidor FTP. Por lo tanto, se recomienda utilizar rutas relativas.

Servidor FTP de tipo AS/400 FTP

La función FTPGet no funciona correctamente en un servidor FTP AS/400.
En este caso, le recomendamos utilizar la función FTPCommand con el comando "RETR" de FTP (para obtener más información, consulte la documentación sobre el servidor FTP).
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd300com.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 05/05/2025

Señalar un error o enviar una sugerencia | Ayuda local