2012-03-31 6 views
0

私は希望しているこの機能に対する回答をSOで検索しましたが、私は必要なのはややユニークですか?提出されたディレクトリ名からHTML形式の画像のリスト

入力要素があり、サブフォルダ名を入力してsubmitを押すと、指定したフォルダ内のイメージ名のリストがPHPなどで生成されます。これは地元で、何も幻想的ではありません。

<form action="Make_List.php" method="post"> 
<input type=text name="location"/> 
<input type=submit/> 
</form> 

<div id="List_Generated"> //desired output. 
<span>A.jpg</span> 
<span>B.jpg</span> 
<span>C.jpg</span> 
<span>D.png</span> 
</div> 

私はMake_List.phpに何を入れるのか、それともローカルで作業するのか分かりません。私はこれをオンラインで見つけました:

//path to directory to scan 
$directory = "../images/team/harry/" (+ sub-folder name); 

//get all image files with a .jpg extension. 
$images = glob($directory . "*.jpg"); 

//print each file name 
foreach($images as $image) 
{ 
echo $image; 
} 

しかし、Firefoxは何をするかわからないので、.phpファイルを開いたり保存したりするように求められます。 SO(ローカル部分)に関するいくつかの同様の質問は、私がこれのためにPHPを必要としないことを暗示していますか?

ヒントや参考になると便利です。

+0

PHPをある種のサーバー環境で実行する必要があります。私はあなたがファイルシステムからそれを実行することはできないのではないかと思います。 Macをお使いの場合は「MAMP」、Windowsの場合は開発用のローカルWebサーバーを設定する場合は「WAMP」を検索してください。 – uotonyh

+0

@uotonyh - サーバー用のものを使わずにローカルで動作する代替方法がありますか? –

+0

@Jasonいいえ、 'server'情報を取得するには' server stuff'が必要です。 – iambriansreed

答えて

2

PHPが処理するサーバー環境を必要とします。自分のコンピュータでローカルにサーバーを実行できます。 Googleのインストールapache + php。 PHP言語をサポートするホスティングがあれば、そこでコードをテストすることができます。

あなたのウェブブラウザはPHPコードを実行しません。インタプリタはスクリプトとそのモジュールを実行して、PHPインタプリタをhttpサーバ、すなわちapacheに接続します。 Apacheは、コードを実行し、特定のモジュールで.phpを処理するように指示された場合、結果を返します。ここで

+0

コンピュータ上のフォルダの内容を一覧表示したいだけの場合はどうすればいいですか?可能かどうか? –

+0

サーバ設定なしではありません –

0

使用

//path to directory to scan 
$directory = "full/path/to/images/team/harry/" . $_POST['location']; 

foreach (glob($directory."*.jpg") as $filename) { 
    echo $filename; 
} 
0

は、サブディレクトリを入力するあなたは、不要で作業するためのより良い例です。

<?php 
//Get subfolder list 
$folders = glob('../images/team/harry/*',GLOB_ONLYDIR); 
?> 

<form action="" method="post"> 
<select name="location" onchange="javascript:this.form.submit()"> 
<option>-Choose Subdir-</option> 
<?php 
foreach($folders as $folder){ 
    echo '<option value="'.basename($folder).'">'.basename($folder).'</option>'.PHP_EOL; 
} 
?> 
</select> 
</form> 

<?php 
//List of files once post was submitted 
if(isset($_POST['location'])){ 
    echo '<div id="List_Generated">'; 
    $files = glob('../images/team/harry/'.basename($_POST['location']).'/*.jpg'); 
    foreach($files as $file){ 
     echo '<span>'.basename($file).'</span>'.PHP_EOL; 
    } 
    echo '</div>'; 
} 
?> 
+0

OPはこのコードを使用して*クライアント*上のファイルにアクセスしようとしています。 –

0

はい、この種のものを行うことができますが、制限を次のように:

  • HTML5(doctypeとマークアップ)を使用する必要があります。
  • Google Chromeのみ(現在)
  • 一般的なファイルシステムではなく、アプリケーション固有の「サンドボックス」領域のみです。

現実には、コンピュータまたは各コンピュータの環境が管理されているイントラネット内のコンピュータに限られています。大規模なインターネットではありません。

私は専門家ではなくhere's a good introductionです。少なくとも、イントロと「ディレクトリの内容を読む」というセクションを読んでおく必要があります。

関連する問題