Ga naar inhoud
  • 0

container velden


keestimmer

Vraag

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 naar reactie

Aanbevolen berichten

  • 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 naar reactie
  • 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"

aangepast door Gast
Link naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...