[ASP/Upload] Afbeelding wordt Binair weergegeven.

Pagina: 1
Acties:

  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
Ik heb een probleem met het weergegeven van afbeeldingen voor mijn advertentie-site die ge-upload zijn. Ik heb gegoogled en de search gebruikt.

Ik kwam tijdens de zoektocht op GoT een topic tegen met het probleem waar ik nu ook mee zit namelijk deze: [rml][ ASP] Response.ContentType lukt niet[/rml]

Helaas is er geen oplossing gepost.

Ik werk dus (nu nog) met een access database en de ge-uploade bestanden worden als OLE object in de database gezet (gaat allemaal prima). Het veld staat op OLE.

Nu is het probleem dat wanneer ik een afbeelding wil laten weergeven op mijn scherm, deze binair op het scherm gezet word.

Ik heb de volgende code:

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<%
        Set rs = Server.CreateObject("ADODB.Recordset")
        strSql = "SELECT Files.ID, Files.F_ADD_ID, Files.[File Name], Files. [File Size],    Files.[File Data], Files.[Content Type] FROM Files WHERE F_ADD_ID = " & addid 
    set rs = my_Conn.Execute (strSql)

      If Not rs.EOF Then
         Response.ContentType = rs("Content Type")
         Response.BinaryWrite rs("File Data")
      End If
            
      rs.Close
      Set rs = Nothing
%>


'Conten Type' is dus het type bestand image/gif of image/jpg en 'File Data' is dus dus de afbeelding. De code komt hier: http://www.stardeveloper....article=2001033101&page=1
vandaan en als zodanig gebruik ik het ook.

Het frustrerende van dit alles is, is dat de code buiten de advertentiesite om wel en daar binnen niet. Ik heb alle mogelijk varianten uitgeprobeerd, maar het werkt gewoon niet in de code waar ik het wil hebben. Op verzoek kan ik eventueel de complete code waar dus het weergave gedeelte in zit mailen of hier plaatsen.

Wat zou een oplossing kunnen zijn??

NB. Ik las ook vrij vaak dat het opslaan van bestanden in een database niet echt aan te raden is. Het is wel een apparte tabel waar die bestanden opgeslagen zijn. Misschien dat ik er zowiezo al mee kan stoppen en over gaan op het opslaan van de bestanden op de server omdat, wanneer de site groter groeit, het erg traag wordt?

EDIT: Sorry voor het verneuken van de lay-out. Misschien kan een modje het ff goed zetten. Krijg het niet voor elkaar...

[ Voor 9% gewijzigd door Manual op 24-01-2003 00:37 ]

Specs


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 25-08 13:24

gorgi_19

Kruimeltjes zijn weer op :9

Was het sowieso niet Response.ContentType = "image/JPEG" ipv Response.ContentType = "image/JPG" ?

En ben je deze post al tegengekomen?
http://www.experts-exchan...uages/ASP/Q_10297182.html

of
Access stores an image as an OLE object, which contains extra information regarding the object's type. Unlike SQL server, it's not just a BLOB of the image. You have to strip out the extra OLE information.

See the following article.

http://www.asptoday.com/articles/19990719.htm

Basically, it boils down to stripping out the first 78 bytes which contain the OLE header info, but you might want to read the article anyway-- as you can also check the header to determine the image-type (jpeg, gif, bmp).

<%
Const OLEHEADERSIZE = 78
nFieldSize = rs("photo").ActualSize
oleHeader = rs("photo").GetChunk(OLEHEADERSIZE)
imageBytes = rs("photo").GetChunk(nFieldSize - OLEHEADERSIZE)
Response.BinaryWrite imageBytes
%>
en dit is het antwoord van clockwatcher

[ Voor 143% gewijzigd door gorgi_19 op 24-01-2003 00:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
gorgi_19 schreef op 24 January 2003 @ 00:48:
Was het sowieso niet Response.ContentType = "image/JPEG" ipv Response.ContentType = "image/JPG" ?

En ben je deze post al tegengekomen?
http://www.experts-exchan...uages/ASP/Q_10297182.html

of

[...]

en dit is het antwoord van clockwatcher
Ik heb al geprobeerd om er i.p.v. Response.ContentType = rs("Content Type"),
Response.ContentType = "image/gif" ofzo neer te zetten maar werkt ook niet.

Het 'accepted answer' van clockwatcher heb ik zojuist ook geprobeerd. Het enige wat hij doet is die 78 bytes er van af halen. Dus de overige binaire code blijft staan en geen afbeelding...

Specs


Verwijderd

Zet je het contenttype wel bovenin de pagina? Naar mijn wete kan je niet midden in de pagina van contenttype switchen.

  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
Verwijderd schreef op 24 januari 2003 @ 10:27:
Zet je het contenttype wel bovenin de pagina? Naar mijn wete kan je niet midden in de pagina van contenttype switchen.
Ik heb het contenttype alleen op de plek staan waar het nu staat. Hij staat maar één keer in de code.

Ik zie dat het overal op die wijze geplaatst wordt.

Ik heb het volgende ook even toegevoegd, maar werkt ook niet:

Response.Expires = 0
Response.Buffer = true
Response.Clear

En verder geprobeerd om i.p.v. dit:

Response.ContentType = rs("Content Type")

te vervangen voor:

Response.ContentType = "image/gif"

Ik hoop dat ik nog OLEE kan zeggen wanneer het werkt :X ;)

Specs


  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
Ik heb het anders gedaan.

Ik sla het bestand op, op de server en niet meer in de database. Ik lees veel te vaak dat het de snelheid niet ten goede komt.

Zoals het nu is werkt het prima.

Topic (Case) closed.

Specs

Pagina: 1