0

各ユーザーが独自の画像を表示するためのこのコードがあります。時間を節約するためにコメントします

    <?php
session_start();
$name=$_SESSION['valid_user']; //saved current username in variable
$loc="./uploads/";             //location of image directory
$path=$loc.$name;              //current user's folder to save his images 
echo $path."<br>";             //i used this to make sure the path is ok, only for testing

if(is_dir($path))              //if directory exists, show it exists,otherwise show it
{                              //doesnt exists
    echo "<br>exists";
} 
else 
{ 
        echo "<br>not exists"; 
}
$files = glob($path."/");
for ($i=1; $i<count($files); $i++)  
{
    $num = $files[$i];          //picture number
    print $num."<br />";
    echo '<img src="'.$path.'" alt="random image" height="100" width="100"/>'."<br /><br />";
}                           //shows the picture till the last one
?>

私が得る出力はこれです

./uploads/user_name

exists

フォルダーが空でなくても、画像は表示されません(アップロードスクリプトは正常に機能します)。

編集; 解決しました(担当者が少なく、自分の質問に答えられません)。

とった。気にする人は、この行をここに

echo '<img src="' . $path . '/' . $files[$i] . '" <!-- etc --> />';

すでにパスが含まれている $files を追加したため、機能していませんでした。

/uploads/username/uploads/username

それは2回同じパスでした.$pathを削除して、

<img src="' . $files[$i] . '"

トリックをしました。ご協力ありがとうございました。

4

2 に答える 2

0

glob:にワイルドカード パスを渡す必要があると思いますglob($path . '/*')。また、画像ソース属性にファイル名を出力していません。

echo '<img src="' . $path . '/' . $files[$i] . '" <!-- etc --> />';

また、 your$numは実際にはファイル名であり、画像番号ではありません - つまり$i. foreachコンストラクトを使用して、そのループを本当に単純化できます。

foreach($files as $filename) {
  // etc
}
于 2013-02-17T16:10:07.883 に答える
0

glob afaikを使用するためのパターンを追加する必要があります

$files = glob($path."/*.*"); // all files
$files = glob($path."/*.jpg"); // all jpgs etc.pp

foreach($files as $idx => $file)
{
    $num = $idx+1; //idx starts with 0 so we add one here
    print $num."<br />";
    echo '<img src="'.$path.'/'.$file'" alt="random image" height="100" width="100"/>'."<br /><br />";
}
于 2013-02-17T16:12:49.660 に答える