Foros del Web » Programación para mayores de 30 ;) » .NET »

Upload de archivos + mozilla firefox

Estas en el tema de Upload de archivos + mozilla firefox en el foro de .NET en Foros del Web. Hola a todos, he descubierto que el code que tengo para subir archivos al servidor no funciona cuando el cliente tiene como navegador firefox. Esto ...
  #1 (permalink)  
Antiguo 19/05/2005, 08:50
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 20 años, 5 meses
Puntos: 2
Upload de archivos + mozilla firefox

Hola a todos,
he descubierto que el code que tengo para subir archivos al servidor no funciona
cuando el cliente tiene como navegador firefox.
Esto es por lo siguiente:
tengo una variable sring la cual toma el path completo del archivo que va a subir
el cliente de la siguiente forma:

PathArchivo = file.PostedFile.FileName
luego antes de subir el archivo valido que que este sea valido o exista:
If System.IO.File.Exists(PathArchivo) Then 'aca el problem

End If

Con IE lo hace perfectamente, sin embargo con firefox siempre dice que el archivo
no existe.
Con IE el file.PostedFile.FileName te devuelve el path completo del archivo, sin
embargo con firefox te devuelve solamente el nombre del archivo, por eso es que siempre
dice que este no existe. Vaya problem que no se como solucionar.
Probé con la propiedad value del input type = "file" pero es lo mismo, con IE te devuelve
el path completo y con firefox solo el nombre del archivo. Saben como puedo solucionar esto?

Otra cosa que he descubierto es lo siguiente:
cuando deseo tomar el tipo de archivo que está subiendo el cliente, esto lo hago con
file.PostedFile.ContentType, con IE una imagen con extención .jpg te devuelve image/pjpeg
sin embargo con firefox te devuelve image/jpeg. mmm por qué sucede esto?
me imagino tiene que ver con el tipo de contenido mime o algo así pero no sé exactamente que
sucede. Saludos...
  #2 (permalink)  
Antiguo 19/05/2005, 09:02
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 20 años
Puntos: 1
Yo trabajo con el firefox y utilizo esto para subirlo al servidor y guardarlo en una carpeta:


Function SaveFile() As Boolean
If CheckFile() = True Then
Dim Fname As String = System.IO.Path.GetFileName(file1.PostedFile.FileNa me)
'file1.PostedFile.SaveAs(Server.MapPath("Descarga\ " & Fname)) '// ruta relativa
file1.PostedFile.SaveAs("C:\ivan\privados\archivos \" & Fname) '// ruta absoluta
Return True
Else
Return False
End If
End Function


' para la extension tengo esto,aunq hasta ahora no he probao con imagenes:


Function CheckFile() As Boolean
If file1.PostedFile.ContentLength > 0 Then
If Not (file1.PostedFile.ContentLength / 1000) > 1024 Then
Dim FileExt As String
FileExt = System.IO.Path.GetExtension(file1.PostedFile.FileN ame).ToLower
If FileExt = ".doc" Or FileExt = ".txt" Or FileExt = ".pdf" Then
lblerror.Text = "El fichero a sido enviado!!!"
Return True
Else
lblerror.Text = "La extensión del fixhero no es corecta."
Return False
End If
Else
Dim SizeMBs As String
SizeMBs = CStr(file1.PostedFile.ContentLength / (1024 * 1024))
SizeMBs = SizeMBs.Substring(0, SizeMBs.IndexOf(".") + 3)
lblerror.Text = "El fichero es demasiado grande ! tu pudes enviar ficheros de 1 Mb como maximo, y el fichero actual tine un tamaño de " & SizeMBs & "MB"
Return False
End If
Else
lblerror.Text = "Fichero no Valido"
return False
End If
End Function
  #3 (permalink)  
Antiguo 19/05/2005, 14:52
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 20 años, 5 meses
Puntos: 2
Gracias por el code neivan, cuando tenga algo de tiempo lo pruebo.
Igual seguiré investigando porque mi code se comporta de cierta manera
con firefox diferente a como lo hace con IE. Saludos...
  #4 (permalink)  
Antiguo 19/05/2005, 15:58
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 20 años, 1 mes
Puntos: 7
Cita:
Iniciado por HenrydeSousa
he descubierto que el code que tengo para subir archivos al servidor no funciona cuando el cliente tiene como navegador firefox.
Una de las malas consecuencias del uso de IE...

Cita:
PathArchivo = file.PostedFile.FileName
En navegadores más estándares y seguros que IE sólo devuelve el nombre del archivo (no recuerdo el link, pero se consideró como bug el saber la ruta del archivo que se sube, esto es conocido como "path disclosure"), sólo en IE se obtiene la ruta completa...

Cita:
Iniciado por HenrydeSousa
luego antes de subir el archivo valido que que este sea valido o exista:
If System.IO.File.Exists(PathArchivo) Then 'aca el problem
End If
No tiene sentido hacer eso, asumiendo que tienes la ruta completa, ya que el archivo no está en el servidor, sino en la computadora del cliente y obviamente no puedes acceder desde el lado del servidor a los recursos del cliente. Al momento de subir el archivo en el servidor, no necesariamente existirá dicho path, te pongo un ejemplo: haz de cuenta que yo quiero subir un archivo "x" que tengo en la unidad "X" (el path sería X:\x), o peor aún, haz de cuenta que tengo un sistema de archivos en linux (con path /home/alex/x), existirá dicho path en el servidor??

No es problema de firefox o cualquier otro navegador en el que te devuelva sólo el nombre del archivo, esto es así por motivos de seguridad y por lo explicado anteriormente.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 23/05/2005, 14:16
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 20 años, 5 meses
Puntos: 2
Cita:
En navegadores más estándares y seguros que IE sólo devuelve el nombre del archivo (no recuerdo el link, pero se consideró como bug el saber la ruta del archivo que se sube, esto es conocido como "path disclosure"), sólo en IE se obtiene la ruta completa...
vaya, eso de verdad no lo sabía. Gracias por la aclaración.

Cita:
No tiene sentido hacer eso, asumiendo que tienes la ruta completa, ya que el archivo no está en el servidor, sino en la computadora del cliente
cierto cierto, lo que pasa es que estaba probando ese code en mi computadora local localhost, y obviamente el archivo siempre era válido. Muchas gracias por la aclaración. Definitivamente en este foro cada día aprendo algo
nuevo. Saludos...
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:51.