1

file_existsPHP の関数で常に false を返すという問題がありましたが、if ステートメントを削除できるのでファイルはそこにあり、正常に表示されます。

$filename = $_SERVER['DOCUMENT_ROOT']."/images/profilepictures/1.png";
if (file_exists($filename) == true)
{
    $output .= '<img src="'.$filename.'" alt="profile picture" width="200"/>';
}

次のように$filenameエコーします。

/home/content/k/e/r/kernelkev/html/images/profilepictures/1.png

私はこれをグーグルで調べてきましたが、ほとんどの答えは DOCUMENT_ROOT を使用することですが、それでもうまくいきません。

今私を本当に悩ませているので、誰かがこれに光を当てることができますか.


これで治りそうだった…

$filename = "/images/profilepictures/1.png";
if (file_exists("..".$filename))
{
    $output .= '<img src="'.$filename.'" alt="profile picture" width="150"/>';
}

理由はわかりませんが、これで終わりです。

4

2 に答える 2

0

php.ini で open_basedir を使用し、open_basedir パス外のファイルに file_exists を使用すると、ログに警告が表示されず、ファイルが実際に存在する場合でも file_exists が false を返します。file_exists は、php ユーザーが所有していないときに「その他」のファイル許可が読み取り可能になっていない場合、ファイルを見つけるのに問題があります。スペースが含まれるディレクトリ名 (/users/andrew/Pictures/iPhoto Library/AlbumData.xml) に問題があると思っていましたが、実際には、Pictures、iPhoto Library、または AlbumData.xml に対する読み取り権限がありませんでした。 . それを修正したら、 file_exists が機能しました。サーバーを適切に構成したため、これらは問題なく機能します

于 2011-08-29T07:14:52.580 に答える