0

ユーザーが最大 4 枚の写真をアップロードできるシステムを開発しています。ユーザーが写真をアップロードしない場合、「空」というテキストが表示されることを望みます。

以下のコードを準備しましたが、管理できませんでした:/ 問題は、画像をアップロードしても「空」と表示され、アップロードされた画像が表示されないことです。

<?php if (file_exists('../files/collection/photo2/' .$collection['Collection']['photo_dir2'] . '/thumb_' . $collection['Collection']['photo2'])) 
{
  echo $this->Html->image('../files/collection/photo2/' . $collection['Collection']['photo_dir2'] . '/thumb_' . $collection['Collection']['photo2']);}
else
{
  echo ('empty');
}
?>

私はあなたの指導と助けに感謝します:)

4

1 に答える 1

2

TLDR: チェックしているファイルは存在しません。パスを修正します。

詳細:<img> HTMLと PHPfile_exists()チェックの 両方に同じパスを使用しようとしています。

問題は、HTML イメージがユーザーのブラウザーを介してファイルを探しているのに対し、file_exists()メソッドはサーバーを介してファイルを探していることです。2 つのパスが同じになることはめったにありません。

PHP のfile_exists()メソッドで正しいパスを使用してみてください。チェックに合格するはずです。

例えば:

if(file_exists(APP . 'files' . DS . 'collection' . DS . 'photos2' . $collection['Collection']['photo_dir2'] . DS . 'thumb_' . $collection['Collection']['photo2'])) {
    echo $this->Html->image('../files/collection/photo2/' . $collection['Collection']['photo_dir2'] . '/thumb_' . $collection['Collection']['photo2']);
}
else {
    echo ('empty');
}
于 2015-03-29T22:01:15.990 に答える