Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Visa bild från Access databas

Postades av 2008-09-03 08:55:31 - Thomas Karlsson, i forum asp.net generellt, Tråden har 2 Kommentarer och lästs av 805 personer

Hallå,

Jag ska visa en bild som är lagrad i en Access databas men får bara ett kryss i bilden?! Vad är det jag missar?

Lagar bilden enligt:


Private Sub InsertFile(ByVal strFileName As String, ByVal abyContent As Byte())
        Dim strQuery As String = "INSERT INTO Files (FileName,FileContent)VALUES(?,?)"
        Dim oConnection As New OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source =  " & HttpContext.Current.Server.MapPath("./DB/Brud_o_Fest.mdb") & "; Mode=ReadWrite;")
        Dim oCommand As New OleDbCommand(strQuery, oConnection)
        Dim oParameters As OleDbParameter = Nothing

        oParameters = New OleDbParameter("?", OleDbType.VarChar)
        oParameters.Value = strFileName
        oParameters.Direction = ParameterDirection.Input
        oCommand.Parameters.Add(oParameters)



        oParameters = New OleDbParameter("?", OleDbType.VarBinary)
        oParameters.Value = abyContent
        oParameters.Direction = ParameterDirection.Input
        oCommand.Parameters.Add(oParameters)

        oCommand.CommandTimeout = 120
        oCommand.CommandType = CommandType.Text

        Try
            oConnection.Open()
            oCommand.ExecuteNonQuery()
        Catch ex As Exception
            Throw ex
        Finally
            If oConnection.State <> ConnectionState.Closed Then
                oConnection.Close()
            End If
        End Try


    End Sub

    Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click

        If Not FileUpload1.FileContent Is Nothing Then
            With FileUpload1.FileContent
                Dim abyContent(CType(.Length, Integer)) As Byte
                .Read(abyContent, 0, .Length)

                Me.InsertFile(FileUpload1.FileName, abyContent)
            End With
        End If


Och försöker komma åt den via:

  <asp:GridView ID="GridView1" runat="server" Width="600px" BackColor="White" BorderColor="#E7E7FF"
                BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Horizontal" AutoGenerateColumns="False"
                EmptyDataText="No data found">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <img alt="" src='<%# Container.DataItem("FileContent") %>' />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="FileName" HeaderText="Filnamn" SortExpression="Fil" />
                </Columns>
                <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Center" />
                <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
                <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" VerticalAlign="Middle" />
                <AlternatingRowStyle BackColor="#F7F7F7" />
            </asp:GridView>


Men som sagt så får jag ett kryss i bilden? Några tips?!

Mvh,
Thomas


Svara

Sv: Visa bild från Access databas

Postades av 2008-09-03 23:03:53 - Emmanuel Ay

Det är ganska enkelt löst, du angriper dock problemet på fel sätt.

Först och främst: säkerställ på något sätt att filen verkligen sparas i databasen.
Sen bör du även lagra filens mimetype på nåt sätt. (Googla på det...)

Lösningen:
Skapa en .aspx fil som tar emot bildens ID via querystring (t.ex. "image.aspx?imgid=filnamn.jpg")
I .aspx filen ("image.aspx") gör du något i stil med:

Response.Clear();
OleDbConnection objConn = new OleDbConnection("din connectionstring");
OleDbCommand objCmd = new OleDbCommand("SELECT FileContent FROM Files WHERE FileName = 'filnamn.jpg'", objConn);
OleDbDataAdapter objAdapter = new OleDbDataAdapter();
objAdapter.SelectCommand = objCmd;
DataTable objTable = new DataTable();
objAdapter.Fill(objTable);

Response.ContentType = "image/jpeg"; // Här har du mimetype, som egentligen skall hämtas från Db
Response.BinaryWrite( objTable.Rows[0]["FileContent"].ToString() );
Response.End();


I ditt grid hänvisar du sedan till bilden med följande snutt:
<img src="image.aspx?imgid=filnamn.jpg" />


Brasklappar för exemplet ovan:
* Stäng alltid connections och nollställ objekt när du är färdig med dem
* Koden ovan är inte testad utan freestyle:ad

Detta är bara ett sätt att lösa det, ett kanske snyggare sätt är att skriva en HttpModule som snappar upp en URL och söker upp bilden ur databasen. På det skulle man kunna lägga till så att man kan skala bilden (för t.ex. thumbnails osv), med mera osv.


Svara

Sv:Visa bild från Access databas

Postades av 2008-09-04 08:45:00 - Thomas Karlsson

Tack för ditt svar!

Det finns säkert snyggare lösningar på detta och min början på detta är säkert inte den bästa...=)

Jag ville bara ha en enkel lösnig på detta lilla projekt jag har. Dock så saknar jag erfarenhet att jobba med bilder och det optimala är säkert inte att ha bilder direkt i en Access databas. Men som sagt så ville jag bara göra det enkelt för mig att jobba mot Access som jag brukar, dock inte lika enkelt som jag hade hoppats...=)

Tack för ditt tips och jag ska se om jag får till det.

Mvh,
Thomas


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
1 135
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies