Tja, een lastige titel, maar ik heb een probleem. Op Firefox heb ik er geen last van, en helaas IE én Safari wel. Het ligt volgens mij (dus) aan het php script wat een afbeelding serveert die in een html pagina wordt opgenomen. Voorbeeldje:
Het zou misschien aan de Content-Disposition header kunnen liggen die standaard op inline staat dacht ik. Die regels weggehaald, maar het haalt niets uit. Misschien dat het nog kan zitten in de headers die je meekrijgt bij het opvragen van het plaatje:
Maar de header informatie van Firefox mist de (involledige) Content-Length en Content-Close. De Connection staat daarbij op Keep-Alive en is een Keep-Alive met timeout=5,max=100 toegevoegd.
Kan iemand helpen om dit probleem op te lossen: hoe kan ik normaal via php een afbeelding serveren om die in een html pagina op te nemen?
HTML: index.html
1
| <img src="plaatje.php"> |
PHP: plaatje.php
Het probleem is dat dus het plaatje gewoon niet zichtbaar is. Zie voor een voorbeeld een artikeltje op mijn ubuntu blog.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| $location = $config->root.$config->directory_media."storage/".$location; if(file_exists($location)){ ob_clean(); //Voor de zekerheid $fp = fopen($location, "rb"); header("Content-Type: ".$mime); header("Content-Length: ".$size); if($url[2]=="download"){ //Of download in de url array voorkomt header("Content-Disposition: attachment; filename=\"".$name."\""); }else{ header("Content-Disposition: inline; filename=\"".$name."\""); } header("Content-Transfer-Encoding: binary\n"); fpassthru($fp); exit; }else{ //File doesn't exist $this->display .= "Het bestand bestaat niet!"; } |
Het zou misschien aan de Content-Disposition header kunnen liggen die standaard op inline staat dacht ik. Die regels weggehaald, maar het haalt niets uit. Misschien dat het nog kan zitten in de headers die je meekrijgt bij het opvragen van het plaatje:
code:
Gevonden via dit online tooltje: http://tools.devshed.com/webmaster-tools/fetch-header/1
2
3
4
5
6
7
8
9
10
11
12
| HTTP/1.1 200 OK Date: Mon, 26 Mar 2007 16:58:04 GMT Server: Apache/2.0.59 (Unix) X-Powered-By: PHP/4.3.11 Set-Cookie: PHPSESSID=*knip*; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Length: Content-Transfer-Encoding: binary Connection: close Content-Type: |
Maar de header informatie van Firefox mist de (involledige) Content-Length en Content-Close. De Connection staat daarbij op Keep-Alive en is een Keep-Alive met timeout=5,max=100 toegevoegd.
Kan iemand helpen om dit probleem op te lossen: hoe kan ik normaal via php een afbeelding serveren om die in een html pagina op te nemen?