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

[Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET y Ajax

Estas en el tema de [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET y Ajax en el foro de ASPX (.net) en Foros del Web. Buenas Noches, les saludas un forero más que trata de hacer desarrollo de aplicaciones Windows y web en el paso de los días comenzare hacerlo ...
  #1 (permalink)  
Antiguo 20/06/2010, 16:55
 
Fecha de Ingreso: junio-2010
Mensajes: 37
Antigüedad: 13 años, 10 meses
Puntos: 0
[Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET y Ajax

Buenas Noches, les saludas un forero más que trata de hacer desarrollo de aplicaciones Windows y web en el paso de los días comenzare hacerlo este es mi primer tutorial en este foro, espero que sea de agrado,
Subir archivos al Servidor y agregarlos en la BD usando ASP.NET y Ajax
Para lograr este cometido, se necesitará visual Studio 2005 o superior y/o contar con el Net Framework 2.0, además vamos a bajar un componente llamado FileUploadAjax (es un control open source para ASP.NET 2.0 de un modo de uso muy similar al tradicional FileUpload pero con una diferencia clave: ¡comportamiento AJAX!) para ello lo podemos descargar del siguiente enlace
Código:
http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=fileuploadajax&DownloadId=20976&FileTime=128382497345600000&Build=16821
Lo descomprimen y dentro de ello encontraran un archivo, fua.dll este archivo lo anexaremos al Visual Studio (Visual Web Developer).
Para ello ingresamos al Visual Studio (en mi caso uso el 2010) y de ahí creamos un proyecto web.

Luego nos dirigimos a la barra de herramientas y a la pestaña general, le das un clic derecho, y la opción Elegir elementos

aparecerá un cuadro de dialogo donde damos clic en examinar

después de ello buscamos donde se encuentra el archivo fua.dll

y lo aceptamos y aplicamos y aceptamos.


Aparecerá un nuevo control, este control lo jalamos al espacio de trabajo, y le hacemos la siguiente configuración


Ahora creamos nuestra tabla en nuestra base de datos.


Aqui les dejo del codigo que se podra activar dandole clic en la pagina en modo diseño.
Código vb:
Ver original
  1. 'Agregamos las referencias que necesitamos.
  2. Imports Subgurim.Controles     'Esta referencia es la utilizacion del Control FileuploadAjax.
  3. Imports System                 'Nos ayuda a tener el control de las carpetas del servidor.
  4. Imports System.IO              'Nos ayuda a tener el control de las carpetas del servidor.
  5. Imports System.Web             'Configuraciones web.
  6. Imports System.Data.SqlClient  'Acceso a la base de datos.
  7.  
  8. Partial Class CargarArchivo
  9.     Inherits System.Web.UI.Page
  10.     Private tempfolder As String = New String("~/archivos") ' Carpeta donde se almacenarán los archivos.
  11.    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  12.         If FileUploaderAJAX1.IsPosting Then
  13.             manejoarchivos()
  14.         End If
  15.     End Sub
  16.  
  17.     Private Sub manejoarchivos()
  18.         Dim pf As HttpPostedFileAJAX = FileUploaderAJAX1.PostedFile 'Pasamos las propiedas del archivo que se ha cargado.
  19.        If pf.Type = HttpPostedFileAJAX.fileType.image Then 'Verificamos que solo pase archivos tipo imagen
  20.            FileUploaderAJAX1.SaveAs(tempfolder, pf.FileName)       'Carga el archivo en el servidor.
  21.            grabarBD(pf.FileName_Path, pf.ContentLength)            'Procedimiento para guardar la ruta en la base de datos.
  22.        End If
  23.     End Sub
  24.     Private Sub grabarBD(ByVal ruta As String, ByVal tamanhio As Long)
  25.         Dim conexion As String
  26.         Dim strsql As String
  27.         Dim objcn As SqlConnection
  28.         Dim objcmd As SqlCommand
  29.         Try
  30.             conexion = ConfigurationManager.ConnectionStrings("ConectarBD").ConnectionString  'Cadena de conexión de la base de datos
  31.            objcn = New SqlConnection(conexion)  'Instanciamos la conexión con el servidor de datos
  32.            If objcn.State = Data.ConnectionState.Closed Then 'Verificamos si la conexión esta cerrada
  33.                objcn.Open() 'Abrimos la conexión
  34.            End If
  35.             strsql = "insert into Ruta_Archivos(Ruta, Tamanio) values ('" & ruta & "'," & tamanhio & ")" 'Sentencia SQL para la inserción de los datos
  36.            objcmd = New SqlCommand(strsql, objcn) 'Habilita la Transact-SQL
  37.            objcmd.ExecuteNonQuery() 'Ejecuta la sentencia SQL
  38.        Catch generatedExceptionName As Exception
  39.             FileUploaderAJAX1.text_Delete = FileUploaderAJAX1.text_Delete & " " & Err.Description 'Si existe algun error lo muestra en el texto del borrado
  40.        Finally
  41.             objcn.Close() 'Cerramos la conexion
  42.        End Try
  43.     End Sub
  44. End Class

Espero que sea de su agrado y tambien para que muchos que conozcan tambien publiquen sus conocimientos, si tienen problemas no se olviden en postear en este mismo hilo.
  #2 (permalink)  
Antiguo 20/06/2010, 21:43
 
Fecha de Ingreso: mayo-2008
Mensajes: 16
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET

se ve muy bueno e interesante, no tendras el codigo en c# ?
  #3 (permalink)  
Antiguo 20/06/2010, 22:47
 
Fecha de Ingreso: junio-2010
Mensajes: 37
Antigüedad: 13 años, 10 meses
Puntos: 0
De acuerdo Respuesta: [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET

Cita:
Iniciado por yatiac Ver Mensaje
se ve muy bueno e interesante, no tendras el codigo en c# ?
Traducido a codigo C sharp
Código C#:
Ver original
  1. using Microsoft.VisualBasic;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Diagnostics;
  7. //Agregamos las referencias que necesitamos.
  8. using Subgurim.Controles;
  9. //Esta referencia es la utilizacion del Control FileuploadAjax.
  10. //Nos ayuda a tener el control de las carpetas del servidor.
  11. using System.IO;
  12. //Nos ayuda a tener el control de las carpetas del servidor.
  13. using System.Web;
  14. //Configuraciones web.
  15. using System.Data.SqlClient;
  16. //Acceso a la base de datos.
  17.  
  18. partial class CargarArchivo : System.Web.UI.Page
  19. {
  20.         // Carpeta donde se almacenarán los archivos.
  21.     private string tempfolder = new string("~/archivos");
  22.     protected void Page_Load(object sender, System.EventArgs e)
  23.     {
  24.         if (FileUploaderAJAX1.IsPosting) {
  25.             manejoarchivos();
  26.         }
  27.     }
  28.  
  29.     private void manejoarchivos()
  30.     {
  31.         HttpPostedFileAJAX pf = FileUploaderAJAX1.PostedFile;
  32.         //Pasamos las propiedas del archivo que se ha cargado.
  33.         //Verificamos que solo pase archivos tipo imagen
  34.         if (pf.Type == HttpPostedFileAJAX.fileType.image) {
  35.             FileUploaderAJAX1.SaveAs(tempfolder, pf.FileName);
  36.             //Carga el archivo en el servidor.
  37.             grabarBD(pf.FileName_Path, pf.ContentLength);
  38.             //Procedimiento para guardar la ruta en la base de datos.
  39.         }
  40.     }
  41.     private void grabarBD(string ruta, long tamanhio)
  42.     {
  43.         string conexion = null;
  44.         string strsql = null;
  45.         SqlConnection objcn = null;
  46.         SqlCommand objcmd = null;
  47.         try {
  48.             conexion = ConfigurationManager.ConnectionStrings("ConectarBD").ConnectionString;
  49.             //Cadena de conexión de la base de datos
  50.             objcn = new SqlConnection(conexion);
  51.             //Instanciamos la conexión con el servidor de datos
  52.             //Verificamos si la conexión esta cerrada
  53.             if (objcn.State == Data.ConnectionState.Closed) {
  54.                 objcn.Open();
  55.                 //Abrimos la conexión
  56.             }
  57.             strsql = "insert into Ruta_Archivos(Ruta, Tamanio) values ('" + ruta + "'," + tamanhio + ")";
  58.             //Sentencia SQL para la inserción de los datos
  59.             objcmd = new SqlCommand(strsql, objcn);
  60.             //Habilita la Transact-SQL
  61.             objcmd.ExecuteNonQuery();
  62.             //Ejecuta la sentencia SQL
  63.         } catch (Exception generatedExceptionName) {
  64.             FileUploaderAJAX1.text_Delete = FileUploaderAJAX1.text_Delete + " " + Err.Description;
  65.             //Si existe algun error lo muestra en el texto del borrado
  66.         } finally {
  67.             objcn.Close();
  68.             //Cerramos la conexion
  69.         }
  70.     }
  71.     public CargarArchivo()
  72.     {
  73.         Load += Page_Load;
  74.     }
  75. }
  #4 (permalink)  
Antiguo 22/06/2010, 08:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 16
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET

muchas gracias!! =)
  #5 (permalink)  
Antiguo 30/07/2010, 17:06
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Sonrisa Respuesta: [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET

Un saludo amigo!! veo que tienes mucha experiencia en esto de VB.net y SQL server 2008

Y nose me estaba preguntando si m podrias ayudar con esto!!

Como hago para almacenar una imagen en la BD desde ASP.net suponiendo que tenga una tabla de esta manera:

create table persona(
cod_persona int not null primary key,
nomcompleto_persona varchar(100),
foto_persona image
)

mmm no quiero que sea una ruta como la que esta para este boton en ASP.net

Código ASP:
Ver original
  1. Protected Sub btnRegistrar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRegistrar.Click
  2.  
  3.         If validar() Then
  4.             If btnRegistrar.Text = "REGISTRAR" Then
  5.                 Dim objPersona As New PersonaBE
  6.                 objPersona.Nombre = txtNombre.Text
  7.                 objPersona.RutaFoto = "Fotos_Personas" & "/" & Path.GetFileName(fuFoto.PostedFile.FileName)
  8.  
  9.                 Dim guardarFoto As String
  10.                 guardarFoto = "C:\Users\MakubexD\Desktop\CONTINUA4_MVELIZ\sitioWeb_Persona\Fotos_Personas" & Path.GetFileName(fuFoto.PostedFile.FileName)
  11.                 fuFoto.PostedFile.SaveAs(guardarFoto)
  12.  
  13.                 personaBLL.Registrar(objPersona)
  14.                 limpiar()
  15.                 listarPersonas()
  16.             Else
  17.                 Dim objPersona As New PersonaBE
  18.                 objPersona.Nombre = txtNombre.Text
  19.                 objPersona.RutaFoto = "Fotos_Personas" & "/" & Path.GetFileName(fuFoto.PostedFile.FileName)
  20.                 MsgBox(hfCodigo.Value)
  21.                 objPersona.Codigo = CInt(hfCodigo.Value)
  22.  
  23.                 Dim guardarFoto As String
  24.                 guardarFoto = "C:\Users\MakubexD\Desktop\CONTINUA4_MVELIZ\sitioWeb_Persona\Fotos_Personas" & Path.GetFileName(fuFoto.PostedFile.FileName)
  25.                 fuFoto.PostedFile.SaveAs(guardarFoto)
  26.  
  27.                 personaBLL.Modificar(objPersona)
  28.                 limpiar()
  29.                 listarPersonas()
  30.             End If
  31.  
  32.         End If
  33.  
  34.        
  35.     End Sub

Sino que sea un arreglo de bytes para evitar tener carpetas con las imagenes y que todo sea desde la BD... Obvio que esto sera con un FILEUPLOAD

Espero averme explicado bien y mas que todo que m puedas ayudar

salu2 cordiales
  #6 (permalink)  
Antiguo 30/07/2010, 19:14
 
Fecha de Ingreso: junio-2010
Mensajes: 37
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET

Una vez lo hice como me lo pediste, pero nuestro docente nos dijo que era una carga innecesaria para nuestra base de datos porque tenia que hacer el arreglo y todo eso era proceso, y me dijo que la mejor solucion era usando una copia de la imagen al ftp, en todo caso dejame buscar la funcion la modifico para que lo puedas usar con el file ajax y lo subo.
  #7 (permalink)  
Antiguo 31/07/2010, 19:07
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
De acuerdo Respuesta: [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET

Cita:
Iniciado por enla Ver Mensaje
Una vez lo hice como me lo pediste, pero nuestro docente nos dijo que era una carga innecesaria para nuestra base de datos porque tenia que hacer el arreglo y todo eso era proceso, y me dijo que la mejor solucion era usando una copia de la imagen al ftp, en todo caso dejame buscar la funcion la modifico para que lo puedas usar con el file ajax y lo subo.
Gracias compi esperare tu repsuesta ansioso!! Solo una consulta mencionaste "AJAX" mmm bueno creo que no habra ningun problema pues buscaba algo simple :P solo usando la paleta de herramientas generales pero si la tienes en AJAX muxo mejor muy agradecido de antemano

salu2
  #8 (permalink)  
Antiguo 21/12/2010, 18:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: [Tutorial] Subir archivos al Servidor y agregarlos en la BD usando ASP.NET

Hola que tal, excelente tutoria... oye yo ando buscando hacer los mismo.... pero que carge un archivo de texto o un excel y que mande el contenido a una base de datos de access! tienes algo que me pueda ayudar?!

Etiquetas: .net, ajax, asp, subir, upload, servidores, aspx, carga
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




La zona horaria es GMT -6. Ahora son las 19:20.