ahora lo mas importante... este es el aspx que trae los datos de una base de datos.. se tiene que llamar ViewImage.aspx
Código:
Imports System.Data.OleDb Public Class ViewImage Inherits System.Web.UI.Page "Region codigo generado por el diseñador bla bla" Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ImageId As String = Request.QueryString("img") Try Dim con As OleDbConnection con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("FileDb.mdb").ToString & "") Dim sql As String = "SELECT Files.FileData, Files.ContentType FROM (Files) WHERE ((Files.ID)=" & ImageId & " )" Dim dralu As OleDbDataReader Dim cmd As OleDbCommand cmd = New OleDbCommand(sql, con) con.Open() dralu = cmd.ExecuteReader If dralu.Read Then Response.ContentType = dralu.Item("ContentType").ToString Response.BinaryWrite(dralu.Item("FileData")) Else End If con.Close() cmd.Dispose() con.Dispose() Catch err As OleDbException Exit Sub Catch err As Exception Exit Sub End Try End Sub End Class
Ahora lo que esperabamos todos ... la hoja del datagrid.... que en mi caso se llama webfom1 y contiene un datagrid que tiene una columna de numero de orden, otra con el nombre , otra con un comentario, y otra para LAS FOTOS esta ultima y la primera son Templatecollum o columna plantilla
y el codigo htm de la pagina es este:
Código HTML:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="autoalbum.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR"> <meta content="Visual Basic 7.0" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 94px; POSITION: absolute; TOP: 57px" runat="server" Width="293px" AutoGenerateColumns="False" CellSpacing="2" CellPadding="4" BorderColor="#999999" BorderStyle="Solid" BorderWidth="0px" BackColor="#CCCCCC" ForeColor="Black"> <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#000099"></SelectedItemStyle> <ItemStyle BackColor="White"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="Black"></HeaderStyle> <FooterStyle BackColor="#CCCCCC"></FooterStyle> <Columns> <asp:TemplateColumn HeaderText="Numero de Orden"> <ItemTemplate> <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="First Name" HeaderText="Nombre del Usuario"></asp:BoundColumn> <asp:BoundColumn DataField="Last Name" HeaderText="Comentario"></asp:BoundColumn> <asp:TemplateColumn HeaderText="foto"> <ItemTemplate> <asp:HyperLink Tooltip="Click aqui para ver imagen original" Target="_blank" NavigateUrl='<%# "ViewImage.aspx?img=" + Cstr(DataBinder.Eval(Container, "DataItem.ID")) %>' ImageUrl='<%# "ViewImage.aspx?img=" + Cstr(DataBinder.Eval(Container, "DataItem.ID")) %>' Width="120" Height="120" Runat="server" ID="Foto" /> </ItemTemplate> </asp:TemplateColumn> </Columns> <PagerStyle HorizontalAlign="Left" ForeColor="Black" BackColor="#CCCCCC" Mode="NumericPages"></PagerStyle> </asp:datagrid></form> </body> </HTML>
para completar les muestro la forma de la base de datos que deben usar para que funcione tal cual esta...
Id Autonumerico Key
File Name Texto
FileSize Numero
FileData Objeto Ole
ContentType Texto
First Name Texto
Last Name Texto
Profession Texto
Nota:
El que tenga ya hecho un programa para subir ficheros puede usarlo, este post es largo por que contiene todo para subir y leer imagenes... sino seria cortito.. solo la parte de traer y mostrar...
Espero que sirva.. y hasta la proxima