Jump to content
  • 0

container velden


keestimmer

Question

Hallo beste forumleden,

Ik loop tegen een probleem aan en kan niet bedenken wat ik fout doe. Ik wil een lijst genereren op een webpagina van bijvoorbeeld 4 beelden die zijn opgeslagen in een 'embedded' container veld. Het container veld staat in een portaal, maar dat maakt verder niet uit.

hieronder de php regel waarbij ik de gegevens uit de database opvraag...

mijn_tabel .= '

containerBridge.php?path=' . urlencode ($related_record->getField('Aanvraag::MyFMContainer')) . '';

 

Er gebeurt eigenlijk het volgende:

Kijk in in de browser dan mist er één beeld.., in de tabel. Doe ik een refresch dan verschijnt het missende beeld en een ander beeld mist opeens. Daar kan ik geen antwoord op vinden. Het lijkt een bug...

 

Heeft iemand deze ervaring ook... En is er misschien iemand die een andere benadering kent om beelden uit een filemaker tabel te laten zien op een internet pagina. Misschien is er een plugin die ik kan inzetten om het geheel aan de praat te krijgen. Ben er al twee dagen mee aan het 'pielen'. Niets lukt eigenlijk!

Ik hoop dat er iemand in het forum is die me een richting kan uitwijzen.>!

Bedankt, groeten Kees Timmer

Link to comment

Recommended Posts

  • 0

Hoi Andries, bedankt dat je wil meekijken...

Het is echt een raar probleem. Het geheel werkt dus wel, maar elke aanroep van de pagina in een browser geeft een ander resultaat... De ene keer mist beeld 1 en 4 uit de lijst. Bij een volgende aanroep heb ik beeld 123 en geen 4. En dan weer 13 en 4 en mis ik beeld 2.

Geen touw aan vast te knopen!

 

Hierbij de code. Als je meer wil weten... dan hoor ik het graag!

Kees

 

$result = $request->execute();

 

// Geen Sleutel gevonden

if(FileMaker::isError($result))

{

header("Location: /error.php");

exit;

}

else

{

$related_records = $record->getRelatedSet('Aanvraag');

foreach($related_records as $related_record )

{

mijn_tabel = '

mijn_tabel .= '

mijn_tabel .= '

' . $related_record->getField('Aanvraag::FileName_item') . '';

mijn_tabel .= '

containerBridge.php?path=' . urlencode ($related_record->getField('Aanvraag::MyFMContainer')) . '';

mijn_tabel .= '

';

}

mijn_tabel .= '

';

}

echo mijn_tabel;

Link to comment
  • 0

extra info:

Filemaker server genereert volgende error:

Sep 11, 2015 1:19:08 PM

Web Publishing Core

Error

0

192.168.69.33 127.0.0.1:62378 www - 812 568 "/fmi/xml/fmresultset.xml?-db=FileScanner_v1&-layoutnames"

 

en

 

0

192.168.69.33 127.0.0.1:62697 www - 812 0 "/fmi/xml/cnt/189731.png?-db=FileScanner_v1&-lay=InterFace_Aanvraag&-recid=133&-field=Aanvraag::pict_item(1).84"

Edited by Guest
Link to comment
  • 0

Error 0 wil zeggen: alles ok, dus daar zit je goed :)

 

ik denk dat er een fout zit in het opbouwen van je tabel. Je opent in elke iteratie een nieuw "

 

probeer dit eens:

 

>
$result = $request->execute();

// Geen Sleutel gevonden
if(FileMaker::isError($result))
{
    die header("Location: /error.php");
}
$related_records = $record->getRelatedSet('Aanvraag');
mijn_tabel = '</pre>
<table>' . $related_record->getField('Aanvraag::FileName_item') . '</table>';<br>echo mijn_tabel

Link to comment
  • 0

Andries, ook dat is raar. Kies ik voor open image in New Tab:

geen probleem hij laadt het plaatje en je ziet een normale afbeelding. Niets mis mee!

 

Dit zijn de links van een "goed" en een "slecht" plaatje:

http://192.168.69.33/beeldbank/containerBridge.php?path=%2Ffmi%2Fxml%2Fcnt%2F202490eeee.png%3F-db%3DFileScanner_v1%26amp%3B-lay%3DInterFace_Aanvraag%26amp%3B-recid%3D133%26amp%3B-field%3DAanvraag%3A%3Apict_item%281%29.86

 

http://192.168.69.33/beeldbank/containerBridge.php?path=%2Ffmi%2Fxml%2Fcnt%2F202490.png%3F-db%3DFileScanner_v1%26amp%3B-lay%3DInterFace_Aanvraag%26amp%3B-recid%3D133%26amp%3B-field%3DAanvraag%3A%3Apict_item%281%29.85

 

Hoi Benach, fijn dat je ook even meekijkt:

containerBridge.php

 

Groet Kees

 

<?php

require_once ('inc/func.php');
if (isset($_GET['path']))
{
$url = $_GET['path'];
$url = substr($url, 0, strpos($url, "?"));
$url = substr($url, strrpos($url, ".") + 1);
if($url == "jpg"){
	header('Content-type: image/jpeg');
}
else if($url == "gif"){
	header('Content-type: image/gif');
}
else if($url == "png"){
	header('Content-type: image/png');
}	
else if($url == "pdf"){
	header('Content-type: application/pdf');
}	
else{
	header('Content-type: application/octet-stream');
}
echo $fm->getContainerData($_GET['path']);
}
?>

Link to comment
  • 0

Ik zie dat je .psd plaatjes gebruikt maar in het containerbridge.php document worden alleen special cases uitgefilterd voor .jpg, .gif, .png en .pdf.

Een psd krijgt dan altijd de header: Content-type: application/octet-stream

 

Zou daar het probleem kunnen zitten. Je kunt dit testen door even alleen een stel .png (screenshots op de mac) plaatjes in de database op te slaan en op de webpagina op te roepen.

Link to comment
  • 0

Nou dat is in ieder geval een geruststelling. Daar wordt ik blij van. Ik heb ook een container record op de layout staan. Als ik alle records opvraag inclusief het container veld. Hetzelfde verhaal..! Onwillekeurig worden beelden niet geladen. Bij een refresh laden de ontbrekende beelden en zijn weer andere records "leeg"...

Nog een vraag jij toont de beelden ook mbv. containerbridge..? En zit container bridge goed in elkaar volgens jou? Als je dat bevestigd dan ga ik opnieuw installeren...

Groet van Kees

Link to comment
  • 0

Ik heb in de loop der tijden wat zitten rommelen aan de containerbridge en ga niet meer standaard uit van de extensie van het plaatje. Ik geef als het even kan het type van het bestand expliciet mee. Hier zit dat in de parameter -type. De parameter -file bevat expliciet de volledige filenaam van het plaatje. Dit is een apart berekeningsveld in mijn FM toepassing.

 

De business-end voor het ophalen van de containerdata ziet er daardoor bij mij ietsje anders uit:

 

if (isset($_GET['-url'])){

	$url = $_GET['-url'];	

	if (isset($_GET['-type']))
		$type = $_GET['-type'];
	else
		$type = substr($url, strrpos($url, ".") + 1);

	if (isset($_GET['-file']))
		$file = $_GET['-file'];
	else
		$file ='';

	if($type == "jpg"){
		header('Content-type: image/jpeg');
		header('Content-Disposition: inline; filename="'.$file.'"');
	}
	else if($type == "gif"){
		header('Content-type: image/gif');
		header('Content-Disposition: inline; filename="'.$file.'"');
	}
	else if($type == "pdf"){
		header('Content-type: application/pdf');
		header('Content-Disposition: inline; filename="'.$file.'"');
	}
	else if($type == "tiff"){
		header('Content-type: image/tiff');
		header('Content-Disposition: attachment; filename="'.$file.'"');
	}
	else { 
       	header('Content-type: application/octet-stream');
       	header('Content-Disposition: attachment; filename="'.$file.'"');
  		} 
echo $fm->getContainerData($url);
}

 

Maar eerlijk gezegd zie ik verder geen probleem in jouw versie. :|

Link to comment
  • 0

Ik heb dat onder diverse installaties (fm10 t/m 14) draaien op zowel windows als mac. (10.8 t/m 10.10)

 

Een heel andere benadering van de oorzaak van jouw probleem is om het in timing te zoeken. Wanneer een plaatje getoond moet worden kan dat al vervangen zijn door het volgende plaatje of juist nog niet beschikbaar zijn. Kijk eens of je met het tonen van slechts 1 en daarna 2, 3 enz een punt kunt aangegeven waarop het wel altijd goed of fout gaat.

Link to comment
  • 0

Ik dacht dat het in mijn fm bestand zat... Dus deze ochtend even een test gedaan met een nieuw filemaker bestand. Geen succes. 1 veld 12 container records met een plaatje erin... Er is geen consequent gedrag te zien... Of althans ik zie het niet.. Vraag: heb je een server binnen handbereik. Ik heb een gezipt mapje klaar staan met daarin fm bestand en de twee php bestanden. Zou je deze willen plaatsen op jouw filemaker server.??

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...