Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 19-may-2005, 08:50   #1 (permalink)
HenrydeSousa ha deshabilitado el karma
 
Avatar de HenrydeSousa
 
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 290
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...
HenrydeSousa está desconectado   Responder Citando
Antiguo 19-may-2005, 09:02   #2 (permalink)
neivan está en el buen camino
 
Avatar de neivan
 
Fecha de Ingreso: febrero-2005
Mensajes: 535
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
neivan está desconectado   Responder Citando
Antiguo 19-may-2005, 14:52   #3 (permalink)
HenrydeSousa ha deshabilitado el karma
 
Avatar de HenrydeSousa
 
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 290
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...
HenrydeSousa está desconectado   Responder Citando
Antiguo 19-may-2005, 15:58   #4 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.249
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
xknown está desconectado   Responder Citando
Antiguo 23-may-2005, 14:16   #5 (permalink)
HenrydeSousa ha deshabilitado el karma
 
Avatar de HenrydeSousa
 
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 290
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...
HenrydeSousa está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 22:17.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93