2016-06-14 16 views
1

特定のディレクトリの内容をリンクとして表示し、それらをクリックするとブラウザーにファイルを開くかダウンロードさせようとしています。 htmlファイルリンクをクリックすると、リンクが機能しません。 リンクを右クリックしてコピーして新しいタブに貼り付けると、ファイルが開きます。PHP - ディレクトリ内のファイルのリストとオープン

マイコード:

<?php 
    $dir = 'c:/dir/work'; 
    $files = scandir($dir); 
    $filecount = count($files); 
    for ($i=0; $i <= $filecount ; $i++) { 
     if ($files[$i] != '.' && $files[$i] != '..') { 
     echo '<p><a href="' . $dir . '/' . $files[$i] . '">' . $dir . '/' . $files[$i] . '</a></p>'; 

     } 
    } 
?> 

答えて

0

あなたがダウンロードしたいすべてのファイルのための中央処理スクリプトを有するべきです。だからあなたのhrefは、スクリプトの代わりに、このようなファイル自体を指します:

echo '<p><a href="downloadfile.php?path=' . $dir . '/' . $files[$i] . '">' . $dir . '/' . $files[$i] . '</a></p>'; 

そして、このスクリプトでは、あなたはこのように、代わりにインラインで表示されるので、ダウンロードを取得するには、ファイルのコンテンツ-dispositionヘッダーを送信する必要があります:

header('Content-Disposition: attachment; filename='.$_GET['path']); 

これが役に立ちます。

0

生成されたリンクをクリックすると、自動ダウンロードファイルのコードを見てください。

<?php 
$dir = 'c:/dir/work'; 
$files = scandir($dir); 
$filecount = count($files); 
for ($i=0; $i <= $filecount ; $i++) { 
    if ($files[$i] != '.' && $files[$i] != '..') { 
    echo '<p><a href=?file=' . $dir . $files[$i] . '>' . $dir . '/' . $files[$i] . '</a></p>'; 

    } 
} 
if(isset($_GET['file'])){ 
    header('Content-Type: application/octet-stream'); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-disposition: attachment; filename=\"" . basename($_GET['file']) . "\""); 
    readfile($_GET['file']); 
} 
?> 
0

お返事ありがとうございました。私はそれらを試みたが、私のために働かなかった。私はこれのための基礎を欠いていると思う。 最終結果私は何かを考え出しました:

// LIST FILES FROM UPLOADS/SUBDIR BY DAY-ID 
function list_files_from_subdir ($subdir, $day_id) { 

    $upload = wp_upload_dir(); 
    $dir = $upload[basedir] . $subdir; 
    $url = $upload[baseurl] . $subdir; 
    $files = scandir($dir); 
    $filecount = count($files); 

    for ($i=0; $i <= $filecount ; $i++) { 

     $fileday = substr($files[$i], 0, 8); 

     if ($day_id == $fileday) { 

     echo '<p><a href="' . $url . $files[$i] . '" target="_blank">' . $files[$i] . '</a></p>'; 

     } 

    } 

} 
関連する問題