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:
Lo descomprimen y dentro de ello encontraran un archivo, fua.dll este archivo lo anexaremos al Visual Studio (Visual Web Developer). http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=fileuploadajax&DownloadId=20976&FileTime=128382497345600000&Build=16821
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
'Agregamos las referencias que necesitamos. Imports Subgurim.Controles 'Esta referencia es la utilizacion del Control FileuploadAjax. Imports System 'Nos ayuda a tener el control de las carpetas del servidor. Imports System.IO 'Nos ayuda a tener el control de las carpetas del servidor. Imports System.Web 'Configuraciones web. Imports System.Data.SqlClient 'Acceso a la base de datos. Partial Class CargarArchivo Inherits System.Web.UI.Page Private tempfolder As String = New String("~/archivos") ' Carpeta donde se almacenarán los archivos. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If FileUploaderAJAX1.IsPosting Then manejoarchivos() End If End Sub Private Sub manejoarchivos() Dim pf As HttpPostedFileAJAX = FileUploaderAJAX1.PostedFile 'Pasamos las propiedas del archivo que se ha cargado. If pf.Type = HttpPostedFileAJAX.fileType.image Then 'Verificamos que solo pase archivos tipo imagen FileUploaderAJAX1.SaveAs(tempfolder, pf.FileName) 'Carga el archivo en el servidor. grabarBD(pf.FileName_Path, pf.ContentLength) 'Procedimiento para guardar la ruta en la base de datos. End If End Sub Private Sub grabarBD(ByVal ruta As String, ByVal tamanhio As Long) Dim conexion As String Dim strsql As String Dim objcn As SqlConnection Dim objcmd As SqlCommand Try conexion = ConfigurationManager.ConnectionStrings("ConectarBD").ConnectionString 'Cadena de conexión de la base de datos objcn = New SqlConnection(conexion) 'Instanciamos la conexión con el servidor de datos If objcn.State = Data.ConnectionState.Closed Then 'Verificamos si la conexión esta cerrada objcn.Open() 'Abrimos la conexión End If strsql = "insert into Ruta_Archivos(Ruta, Tamanio) values ('" & ruta & "'," & tamanhio & ")" 'Sentencia SQL para la inserción de los datos objcmd = New SqlCommand(strsql, objcn) 'Habilita la Transact-SQL objcmd.ExecuteNonQuery() 'Ejecuta la sentencia SQL Catch generatedExceptionName As Exception FileUploaderAJAX1.text_Delete = FileUploaderAJAX1.text_Delete & " " & Err.Description 'Si existe algun error lo muestra en el texto del borrado Finally objcn.Close() 'Cerramos la conexion End Try End Sub 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.