eddi: file_exists findet die Datei nicht.

Hallo,

  
$datei ='/belege/ANGB_'. $a[VNUM].'.pdf';  
  
if (file_exists($datei)) {  
	echo "<a href='$datei' target='_blank'>$datei</a>";  
} else {  
	echo "Nicht vorhanden";  
}  

Die Datei, die definitiv vorhanden ist, wird nicht gefunden.

Kommentiere ich das if{ }else{ } komplett aus und lasse nur das:

  
	echo "<a href='$datei' target='_blank'>$datei</a>";  

Klappt der Link.

Warum findet file_exists die Datei dann nicht?

Danke

  1. Hi,

    $datei ='/belege/ANGB_'. $a[VNUM].'.pdf';

    if (file_exists($datei)) {
    echo "<a href='$datei' target='_blank'>$datei</a>";
    } else {
    echo "Nicht vorhanden";
    }

    
    >   
    > Die Datei, die definitiv vorhanden ist, wird nicht gefunden.  
      
    aber sie ist mit an Sicherheit grenzender Wahrscheinlichkeit nicht da, wo du PHP danach suchen lässt. Egal ob der Server, auf dem dein Webspace liegt, ein Unix- oder Windows-System ist - dass direkt direkt auf oberster Ebene im Dateisystem ein Verzeichnis "belege" existiert, auf das du als Kunde Zugriff hast, ist sehr unwahrscheinlich.  
      
    
    > Kommentiere ich das if{ }else{ } komplett aus und lasse nur das:  
    >   
    > `echo "<a href='$datei' target='_blank'>$datei</a>";`{:.language-php}  
    >   
    > Klappt der Link.  
      
    Klar, dann bist du auch in einem ganz anderen Kontext, nämlich HTML, das an den Client geht. Der findet darin einen Link, mithin einen HTTP-Request. Das ist auf jeden Fall eine andere Welt als das Dateisystem des Servers.  
      
    
    > Warum findet file\_exists die Datei dann nicht?  
      
    Weil du nicht vom Ursprung des Filesystems aus danach suchen solltest, sondern vom Document Root?  
      
    Ciao,  
     Martin  
    
    -- 
    Lache, und die Welt wird mit dir lachen.  
    Schnarche, und du schläfst allein.  
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    
  2. Moin,

    $datei ='/belege/ANGB_'. $a[VNUM].'.pdf';

    if (file_exists($datei)) {
    echo "<a href='$datei' target='_blank'>$datei</a>";
    } else {
    echo "Nicht vorhanden";
    }

      
    Achtung! Du verwechselst bei den Dateipfaden Dateisystem mit Document Root. file\_exists operiert im Dateisystem, der Link im Document Root.  
      
    Viele Grüße,  
    Robert