Foros del Web » Programando para Internet » ASPX (.net) »

Copiar archivo de la máquina de un cliente al servidor.

Estas en el tema de Copiar archivo de la máquina de un cliente al servidor. en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/03/2009, 12:48
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 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.
  #2 (permalink)  
Antiguo 03/03/2009, 13:38
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Copiar archivo de la máquina de un cliente al servidor.

ok tu codigo en que esta, una aplicacion windows que tu usuario baja, un activex o en una aplicacion asp.net

si esta en asp.net no se puede, porq requieres usar uno de los 2 metodos que menciono al inicio o aplicacion windows o un activex que permita enviar el archivo del cliente a tu servidor, pero desde asp.net no es posible automaticamente.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 03/03/2009, 14:28
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 meses
Puntos: 0
Pregunta Respuesta: Copiar archivo de la máquina de un cliente al servidor.

Gracias por tu respuesta, mi aplicación esta en asp.net.
Ahora con respecto a tus dos alternativas la verdad yo no tengo idea que es un ActiveX si me pudieras un ejemplo o hay alguna forma de hacer referencia a un ActiveX desde asp.net me ayudarias mucho o de pronto si tuvieras un ejemplo de como hacerlo desde windows forms.

Gracias por cualquier ayuda que me puedas brindar.
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 13:18.