* Tener una buena linea de internet, ya que descargar es menos rapido (o mas lenta) que subir un archivo a un servidor, esta consideracion es muy importante ya que podria ocacionar un error si caduca el tiempo de espera para establecer conexion con el FTP que generalmente es por tener una linea pesima.
* contar con los campos necesarios en nuestra BD (suponemos SQL Server)para que este sea eficaz de controlar dichas transferencias de los archivos, los datos como el nombre del archivo, nombre del usuario remitenete y destino, hora y fecha de recepcion sera las claves de un buen control.
* Bueno, demas esta decir que tienen que contar con un Server FTP donde se almacenan y de donde se "jalaran" los archivos a las PC de cada usuario que acceda a ellas desde cualquier punto del universo y desde cualquier epoca de en un futuro muy lejano.
Este es el ejemplo en codigo Visual Basic 2008
Donde RutaArchivo vendria a ser la carpeta en nuestro disco duro donde se guardara el archivo descargado y podria ser "c:\descargas\nombre_original_segun_BD.doc" y NombreArchivo el nombre con la cual esta almacenada en el server FTP, si consultamos bien los parametros no tendriamos problemas en obtener el archivo al cual deseamos acceder ya que supuestamente cada archivo en el server FTP esta registrada en la Base de Datos, he aqui la importancia de guardar los datos que estan relacionados con el archivo.
Public Sub DescargarArchivoFTP(ByVal RutaArchivo As String, ByVal NombreArchivo As String)
Dim localFile As String = RutaArchivo
Dim remoteFile As String = NombreArchivo
Const host As String = "ftp://xxx.xx.xx.xxx/archivos/" 'nombre de la carpeta en nuestro server FTP donde estan los archivos que deseamos descargar
' colocamos el nombre de usuario y password respectivo para acceder al server, si este no poseyera, dejar solo las comillas, osea ""
Const username As String = "usuario"
Const password As String = "password"
Dim URI As String = host & remoteFile ' nombre completo de la ruta del archivo
Dim ftp As System.Net.FtpWebRequest = CType(Net.FtpWebRequest.Create(URI), Net.FtpWebRequest)
ftp.Credentials = New _
System.Net.NetworkCredential(username, password)
ftp.KeepAlive = False
ftp.UseBinary = True
ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile
Try
Using response As System.Net.FtpWebResponse = _
CType(ftp.GetResponse, System.Net.FtpWebResponse)
Using responseStream As IO.Stream = response.GetResponseStream
Using fs As New IO.FileStream(localFile, IO.FileMode.Create)
Dim buffer(2047) As Byte
Dim read As Integer = 0
Do
read = responseStream.Read(buffer, 0, buffer.Length)
fs.Write(buffer, 0, read)
Loop Until read = 0
responseStream.Close()
fs.Flush()
fs.Close()
End Using
responseStream.Close()
End Using
response.Close()
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
2 comentarios:
un consejo:
este codigo lo he tenido que desarrollar en la uni
y me parece mejor añadirlo desde un Boton
A mi me parece perfecto asi, lo pones en un modulo y lo mandas llamar desde cualquier parte de tu proyecto... Gracias por la aportacion =)
Publicar un comentario en la entrada