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

Subir archivos al servidor...

Estas en el tema de Subir archivos al servidor... en el foro de .NET en Foros del Web. ¿Cómo puedo hacer uploads de archivos desde mi aplicación en vb ASP.net ? He tratado de hacer esto: Código: If Not File1.PostedFile Is Nothing And ...
  #1 (permalink)  
Antiguo 11/03/2005, 14:37
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
Pregunta Subir archivos al servidor...

¿Cómo puedo hacer uploads de archivos desde mi aplicación en vb ASP.net ?

He tratado de hacer esto:
Código:
        If Not File1.PostedFile Is Nothing And File1.PostedFile.ContentLength > 0 Then
            Dim fileup As String = System.IO.Path.GetFileName(File1.PostedFile.FileName)
            Dim route As String
	    
	    route = lbl.Text

            Dim Ruta As String = Server.MapPath("Subir\") & route
            Dim directorio As DirectorInfo = Directory.CreateDirectory(Ruta)

            Dim SaveLocation As String = Server.MapPath("Fotos") & "\" & route & "\" & fileup 

            File1.PostedFile.SaveAs(SaveLocation)
        End If
Pero no me funciona. ¿En qué estoy fallando?>
Agradeceré que me auxilien en esto.
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca

Última edición por siannah; 11/03/2005 a las 14:38
  #2 (permalink)  
Antiguo 14/03/2005, 02:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
has hecho un debug? te sale algun error? ...
  #3 (permalink)  
Antiguo 14/03/2005, 06:00
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
Hola wakewakeup, mi código dice que DirectorInfo es un tipo no definido y la tiene subrayada. Supongo que tengo que declarar algo más pero no se qué...

Dim directorio As DirectorInfo
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #4 (permalink)  
Antiguo 14/03/2005, 11:11
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
prueba a poner System.IO.DirectoryInfo en vez de directoryinfo a secas...
  #5 (permalink)  
Antiguo 14/03/2005, 14:29
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
¡Estupendo! me funcionó perfecto...Muchísimas gracias. No obstante, ahora me gustaría saber cómo pudiera filtrar archivos. Esto es que mi aplicación sólo escoja archivos *.jpg , *.gif, etc...¿?>
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #6 (permalink)  
Antiguo 14/03/2005, 15:05
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
Creo que puedes intentar con algo asi:

File1.PostedFile.ContentType

Aqui obtienes el tipo de archivo y te encargarias de validar que sea de un tipo correcto
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #7 (permalink)  
Antiguo 15/03/2005, 05:59
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
Bueno, pues te cuento, lo que se me ha ocurrido es que yo guardo en esta variable el nombre del archivo que voy a subir: Dim fn As String = System.IO.Path.GetFileName(File1.PostedFile.FileNa me). Lo que pienso hacer es validar que las 3 últimas posiciones de esa cadena (y claro, luego del punto) sean jpg o gif...y así resolvería este caso. Desde luego, trataré de probar lo que me dices Rony. No obstante, ahora tengo otra inquietud...¿Cómo validaría el tamaño de ese archivo? Esto es para no permitir que suban una xxx cantidad de KB o MB... Tal vez se me ocurra algo antes que me respondan, de cualquier modo lo compartiré por esta vía y si alguién tiene alguan idea, me avisan por fa ;)
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #8 (permalink)  
Antiguo 15/03/2005, 06:39
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Request.Files[i].ContentLength

Te aviso que eso solo mira que la extension sea la correcta, pero pueden pasarte un archivo de otro tipo renombrado a esa extension... yo ando buscando la manera de controlar eso tambien...
  #9 (permalink)  
Antiguo 15/03/2005, 06:48
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
¡Listo! De esta forma obtengo lo que quiero:
Código:
Dim nombreArchivo As String = System.IO.Path.GetFileName(File1.PostedFile.FileName)
Dim extensionArchivo As String = System.IO.Path.GetExtension(File1.PostedFile.FileName)
Dim tipoArchivo As String = File1.PostedFile.ContentType() 
Dim tamanoArchivo As Long = File1.PostedFile.ContentLength
El tamaño del archivo está dado en bytes...

Muchísimas gracias a todos nuevamente y será hasta la próxima...
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #10 (permalink)  
Antiguo 15/03/2005, 06:57
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
wakewakeup, según probé, con File1.PostedFile.ContentType() tu puedes identificar que tipo de aplicación es que sube. Por ejemplo, tomé un archivo de word y le cambié la extensión a .jpg, sin embargo el resultado del File1.PostedFile.ContentType() fue como si fuera un archivo .exe y no imagen. Cuando el archivo es imagen jpg File1.PostedFile.ContentType() devuelve : "image/pjpeg", cuando le cambié de .doc a .jpg me devolvió: "application/octet-stream". No se si me expliqué correctamente pero creo que la idea está plasmada. pruébalo tu y me cuentas...
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #11 (permalink)  
Antiguo 15/03/2005, 09:27
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Acabo de probar y tanto con un txt como con un .doc renombrados a .xls me sale "application/vnd.ms-excel".
Que es exactamente el File1 que aparece en tu codigo?
  #12 (permalink)  
Antiguo 15/03/2005, 11:44
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
En mi caso particula sólo necesito discriminar los archivos tipo imágenes y según probé, me funciona perfectamente. Ahora bien, no lo probé con otras extensiones...

File1 es un control button html tipo file. Le cotejé la opción Run As Server Control y en el code behind coloqué Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile (en el respectivo lugar)

Luego lo pude usar en el code behind como un control cualquiera de asp.net.
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #13 (permalink)  
Antiguo 31/03/2005, 09:59
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
Luego de haber desarrollado satisfactoriamente la aplicación que me permita subir imágenes a mi servidor, me ha surgido otra necesidad:

Deseo cambiar el nombre del archivo. Esto es si el usuario va a subir un archivo con el nombre cosa.jpg yo pueda cambiar el nombre del archivo para guardarlo en el servidor como fecha-usuario.jpg

No se si me explico bien, espero que sí y si me pueden dar algunas indicaciones quedaré agradecida...
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #14 (permalink)  
Antiguo 31/03/2005, 10:12
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
En algún sitio haras un saveas y le pasarás el nombre con el que quieres guardar el archivo en el servidor...
  #15 (permalink)  
Antiguo 01/04/2005, 06:00
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
¡Cheverísimo hombre! Todo está como quería. G R A C I A S . . .
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #16 (permalink)  
Antiguo 28/04/2005, 15:31
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
De nuevo el mismo tema, pero con un detalle diferente. Si quisiera eliminar un archivo del servidor, o si quisiera cambiarle el nombre a un archivo que haya subido, es decir, que exista...¿cómo lo haría?
mmm ...Imagino que no puedo eliminar archivos del servidor. Pero cambiarle el nombre a uno existente creo que si. Lo que quiero hacer es que si el archivo existe con un nombre x y quiero subir otro archivo con el mismo nombre, cambio el nombre de x a z y subo mi nuevo archivo con nombre x. No se si me doy a entender...

Bueno seguiré pensando a ver qué se me ocurre o qué ideas me puedan decir.
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #17 (permalink)  
Antiguo 29/04/2005, 01:02
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 20 años, 1 mes
Puntos: 1
Claro que puedes renombrar borrar y lo que quieras siempre que tu usuario tenga privilegios en esa carpeta con la clase System.IO.File
  #18 (permalink)  
Antiguo 29/04/2005, 13:24
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
Chévere, ya vi cómo puedes eliminar un archivo. Ahora bien, he tratado de renombrar el archivo y no lo logro... ¿Qué pudiera hacer?>
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
  #19 (permalink)  
Antiguo 29/04/2005, 14:32
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Lee la documentación del espacio de nombres System.IO, en especial de las clases File, FileInfo, Directory y DirectoryInfo:
http://msdn.microsoft.com/library/sp...rfsystemio.asp

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #20 (permalink)  
Antiguo 29/04/2005, 15:39
 
Fecha de Ingreso: diciembre-2003
Ubicación: WWW
Mensajes: 98
Antigüedad: 20 años, 11 meses
Puntos: 0
Voy a leerlo y ya te diré mis conclusiones y/o resultados ;)
__________________
"No nos atrevemos a muchas cosas porque son difíciles, pero son difíciles porque no nos atrevemos a hacerlas" :si:

Séneca
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 14:04.