[ASP] Response.ContentType lukt niet

Pagina: 1
Acties:
  • 253 views sinds 30-01-2008
  • Reageer

  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Ik heb deze pic.asp:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
  
  Set Con = Server.CreateObject("ADODB.Connection")
  Database = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("database.mdb")
  Con.Open Database

  SQL = "SELECT Plaatje FROM SubMenuItems WHERE Id = " & Request("id")
   
  Set RecordSet = Server.CreateObject("ADODB.Recordset")
  RecordSet.Open SQL, Con
  
  Response.ContentType = "image/jpg"
  
  Response.BinaryWrite Recordset("Plaatje")
  
  RecordSet.Close
  Set RecordSet = Nothing
  
  Con.Close
  Set Con = Nothing
%>

Dit werkt in beginsel prima, behalve dat ik geen plaatje te zien krijg, maar een hele hoop rare tekens (a la "qH°/#'ç NžCþö"). Ik verwacht dus dat de fout in het Response.Contentype gedeelte zit. Iemand een idee?

Geef mij maar een Warsteiner.


Verwijderd

Staat je Response.Buffer op True?

Kijk ook eens naar het ADO Stream object (ik ken het niet, maar ik denk dat het voor jou handig is).

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Uhm, probeer eens control refresh te doen en eventueel dat response.contenttype helemaal bovenin te zetten

  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Response.Buffer = True heeft geen effect, en het verplaatsen van Response.ContentType ook niet.

Ik kan het plaatje overigens wel bekijken als ik de database in MS Access open, dus het staat er goed in ...

Nog meer ideeen?

Geef mij maar een Warsteiner.


  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Als ik Response.ContentType op "image/jpeg" zet dan krijg ik een kruisje te zien (dan ziet ie het wel als plaatje maar als een plaatje dat niet klopt ofzo? :) )...errug vaag...

Moet ik de database op een Binary manier openen ofzo (kan het me niet voorstellen, maar toch?)

Geef mij maar een Warsteiner.


  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Op donderdag 07 februari 2002 14:22 schreef Knakker het volgende:
Ik kan het plaatje overigens wel bekijken als ik de database in MS Access open, dus het staat er goed in ...
Hoe staan de plaatjes in Access? Als OLE-object? Ik weet niet of je dan de 'raw data' van het plaatje krijgt, maar ik denk het eigenlijk niet.

  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Op donderdag 07 februari 2002 14:54 schreef xtra het volgende:

[..]

Hoe staan de plaatjes in Access? Als OLE-object? Ik weet niet of je dan de 'raw data' van het plaatje krijgt, maar ik denk het eigenlijk niet.
Ja, als een OLE object - maar ik kan geen enkele andere "binaire" vorm in de ontwerpweergave selecteren... Heb je wellicht enig idee hoe ik het OLE-object rechtstreeks uit de database zou kunnen vissen?

Geef mij maar een Warsteiner.


  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Op donderdag 07 februari 2002 15:00 schreef Knakker het volgende:

[..]

Ja, als een OLE object - maar ik kan geen enkele andere "binaire" vorm in de ontwerpweergave selecteren... Heb je wellicht enig idee hoe ik het OLE-object rechtstreeks uit de database zou kunnen vissen?
In een ver verleden heb ik er wel eens naar gekeken. Ik weet eigenlijk niet of je in Access een binary of blob veldtype kunt gebruiken. Misschien dat het met SQL kan.
Heb je al op MSDN gekeken? Ik heb daar wel eens tabellen zien staan met een vergelijking van veldtypen tussen Access, SQL Server etc.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Ja kan wel hoor, anders moet je ff kijken op 4guysfromrolla daar staat wel een voorbeeld.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Probeer dit es:

http://www.aspsimply.com/load/file_view.asp


Response.ContentType = "image/jpeg"
Response.BinaryWrite (objRS("FileData").GetChunk(objRS("FileData").ActualSize))

  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Response.BinaryWrite (RecordSet("Plaatje").GetChunk(RecordSet("Plaatje").ActualSize))

Ik krijg een error:

Soort fout:
ADODB.Field (0x800A0BB9)
De argumenten zijn van het verkeerde type, vallen buiten het toegestane bereik of zijn in conflict met elkaar.


Weet iemand wat dit is?

edit:

Ik heb mijn script trouwens van 4guysfromrolla, maar dat werkt dus niet :)

Geef mij maar een Warsteiner.


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
zo deden wij het (mischien heb je er iets aan?)
code:
1
2
3
4
5
6
7
8
9
10
11
<% 
Set db = Server.CreateObject("ADODB.Connection") 
db.Open "Databeest" 
Set rs =db.Execute("SELECT * FROM Tabel where id = " & Request("id") ) 
Response.ContentType = "image/jpeg" '(or "image/gif") 

Response.AddHeader "Content-Disposition", "filename=yourfile.ext" 

Response.AddHeader "Content-Length", "545645" 
Response.BinaryWrite rs("image") 
%>

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Op vrijdag 08 februari 2002 10:06 schreef 4of9 het volgende:
zo deden wij het (mischien heb je er iets aan?)
code:
1
2
3
4
5
6
7
8
9
10
11
<% 
Set db = Server.CreateObject("ADODB.Connection") 
db.Open "Databeest" 
Set rs =db.Execute("SELECT * FROM Tabel where id = " & Request("id") ) 
Response.ContentType = "image/jpeg" '(or "image/gif") 

Response.AddHeader "Content-Disposition", "filename=yourfile.ext" 

Response.AddHeader "Content-Length", "545645" 
Response.BinaryWrite rs("image") 
%>
Hmm, ik krijg met jou code (zonder de content-disposition en content-length, maar dat doet niet terzake) de fout dat er een incorrect datatype is aangetroffen (dus mijn rs("image") )...

Geef mij maar een Warsteiner.


  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Ik snap er echt niks van. Dingen die bij IEDEREEN werken, béhalve bij mij! Niemand heeft last van een incorrect datatype, maar ik wel terwijl ik de tutorials echt op de voet volg gewoon :( Frustrerend zoiets :)

Geef mij maar een Warsteiner.


  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Ik dacht: misschien ligt het aan de database dus ik heb ff een nieuwe database gemaakt met enkel een tabel met een OLE-object daarin. Nu krijg ik niet meer de error 'incorrect datatype' maar weer een kruisje te zien in plaats van een plaatje, óók met het voorbeeld van 4of9. Ah well, het is tenminste beter dan een of andere vage error ;) Maar we zijn er nog steeds niet dus.

Misschien ligt het dan aan de manier waarop ik de plaatjes in de database gooi: Vanuit MS Access doe ik (ik sta op het veld van het OLE-object) invoegen->object->bestand gebruiken en dan kies ik een jpgtje. Nu kan ik vanuit MS Access dit jpgtje prima openen en bekijken, via ASP lukt dit dus niet. Is de manier waarop ik hem aan de database toevoeg misschien verkeerd?

Geef mij maar een Warsteiner.

Pagina: 1