Ik wil het volgende doen::


if (file_exists($path.'.jpg'))
	{
	$ext = 'jpg';	
	} 


Het bestand bestaat gewoon en heeft 777 rechten.
openbase dir staat uit voor het domein.
Het gaat dus om een plaatje dat op een ander domein staat dus buiten de document root.

ini_set('display_errors',1);
geeft geen enkele error.

Hoe kan ik dit debuggen?
Het bestand kan wel bestaan met de juiste rechten, maar heeft $path die ook.
Bekijk het vanuit de server. Die moet erbij kunnen.
Heb je wel het volledige path opgegeven vanuit de root? Zoiets als:

/var/www/mijnsite.nl/mijnfolder/plaatje.jpg

of /home/mijnsite.nl/mijnfolder/plaatje.jpg
absoluut het pad is:

/home/xxxxx/domains/xxxxxxxx.nl/private_html/images/producten/m_2077361070_image.jpg

En die bestaat, dat pad is correct. zo vreemd dit.
Maar pas je dit pad ook toe in file_exists?

Draai je dit vanuit een cronjob of als los script?
Jazeker, natuurlijk pas ik dit pad toe.

Nu apart in een bestand krijg ik weer dit, was eerst weg.


<b>Warning</b>: file_exists(): open_basedir restriction in effect. File(/home/xx/domains/xx.nl/private_html/images/producten/m_2077361070_image.jpg) is not within the allowed path(s):


Update,

nu heb ik openbase_dir uitgezet naar het doel pad waar de plaatjes staan en ook de bron site waar de verwijzing staat. Nu krijg ik geen foutmelding. maar hij bestaat niet.

deze code


if (file_exists('/home/xx/domains/xx.nl/private_html/images/producten/m_2077361070_image.jpg'))
{
echo 'bestaat';	
}


in DA open open_base restrictions in het doeldomein uitgezet bij: Custom HTTPD Configurations
Maar bestaat komt maar niet.
Weet je zeker dat het private_html is? Vaak wordt dit gesymlinkt met public_html.
Ik lees dat de resultaten van file_exists worden gecachet. Probeer voor de zekerheid die cache eens te wissen:

<?php

clearstatcache();

if (file_exists('/home/xx/domains/xx.nl/private_html/images/producten/m_2077361070_image.jpg'))
{
echo 'bestaat';
}

?>
Voorbeeld
 $plaatje = file_get_contents('http://url/naar/images/producten/m_2077361070_image.jpg');
header("Content-Type: image/jpeg");
header('Content-Disposition: attachment; filename="plaatje'); 
echo($plaatje);
Gedaan en helemaal noppes.

Snap er helemaal niks meer van.

Reageren