Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2009, 12:48
Rodro
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 11 meses
Puntos: 0
Pregunta Copiar archivo de la máquina de un cliente al servidor.

Quisiera saber si se puedo obtener un archivo .txt
que esta en la máquina de cualquier cliente en la ruta
C:\Datos y copiarlo en el servidor donde esta alojado
mi sitioweb por ftp.

He intentado con el siguiente código pero
me copia el archivo desde el servidor al servidor, es decir que el no reconoce
que Dim Directorio As String = "C:\Datos" es la ruta del cliente en este caso mi
máquina local sino que la coge como ruta del servidor:

Protected Sub btnEnviar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnEnviar.Click
VerificarArchivos()
End Sub

Private Sub VerificarArchivos()
Dim Directorio As String = "C:\Datos"
If FileIO.FileSystem.DirectoryExists(Directorio) Then
Dim TotalPedidos As Integer = 0
For Each NombreArchivos As String In FileIO.FileSystem.GetFiles(Directorio)
Dim Archivo As FileInfo = FileIO.FileSystem.GetFileInfo(NombreArchivos)
If Archivo.Extension.ToLower = ".txt" Then
SubirArchivoAlServidor(Archivo.FullName, Archivo.Name, "ftp://192.1.1.216/", "ASOFAR", "2000")
TotalPedidos += 1
End If
Next
End If
End Sub

Private Function SubirArchivoAlServidor(ByVal strFilePath As String, ByVal NombreArchivo As String, ByVal strFTPPath As String, ByVal strUserName As String, ByVal strPassword As String) As Boolean
Try
Dim strFileName As String = strFilePath.Substring(strFilePath.LastIndexOf("\\" ) + 1)
Dim reqObj As Net.FtpWebRequest = Net.WebRequest.Create(strFTPPath + "/" + NombreArchivo)
reqObj.Method = Net.WebRequestMethods.Ftp.UploadFile
reqObj.Credentials = New Net.NetworkCredential(strUserName, strPassword)
Dim sourceStream As StreamReader = New StreamReader(strFilePath)
Dim fileContents As Byte() = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd())
sourceStream.Close()
reqObj.ContentLength = fileContents.Length
reqObj.Proxy = Nothing
reqObj.KeepAlive = False
Dim requestStream As Stream = reqObj.GetRequestStream()
requestStream.Write(fileContents, 0, fileContents.Length)
requestStream.Close()
Dim response As Net.FtpWebResponse = reqObj.GetResponse()
response.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function

Espero haber sido claro con mi problema.

Gracias por su ayuda ya llevo dos días tratando de hacer esto.