2017-08-17 9 views
-3

私は、サーバー上のファイルに直接アクセスすることはできませんが、ページにアクセスしてファイルの場所を指定し、ファイルをダウンロードすることができるユーザーが使用できる単純なHTMLページを作りたいと思います。Win_scpのようなものかもしれません存在し、html形式のすべてのファイルを表示することなく。同じlinuxサーバーからファイルをダウンロードするのに使用できる単純なhtmlページを作成するにはどうすればいいですか?

答えて

0

これはあなたが欲しいものですか?

<form action="post.php" method="post"> 
    <input name="file" placeholder="file"/> 
    <input type="submit" value="GO"/> 
</form> 

post.php

<?php 
if(!empty($_POST['file'])) { 
    $folder = 'files/'; 
    if(file_exists($folder . $_POST['file'])) { 
    echo '<a href="'. $folder . $_POST['file'] .'">download</a><br/>'; 
    } 
exit; 
} 
// if not, return to index.php, or whatever page the client was on 
header('location: index.php'); 
?> 

お知らせ:

  • フォルダは、クライアントがアクセス権を持っていない場所であることが可能です。 隠しフォルダのファイルへのリンクを表示する代わりに、一時フォルダにコピーします。

copy($ folder。$ _POST ['file']、 'temp /'。$ _POST ['file']);

  • これは安全ではありません。 $ _POST ['file']をチェックすると、ハッカーは見たくないファイルにアクセスしようとしません。 pathinfoはこれに使用できます。 (これが安全でないことを誰かが知っている場合は、ご意見ください)

$ file = pathinfo($ _ POST ['file']、PATHINFO_BASENAME);

そのため、おそらくこのような何か(これは、あなたが「一時」というフォルダを必要とする意味)

<?php 
if(!empty($_POST['file'])) { 
    $file = pathinfo($_POST['file'], PATHINFO_BASENAME); 
    $folder = 'files/'; 
    if(file_exists($folder . $file)) { 
    copy($folder . $file , 'temp/' . $file); 
    echo '<a target="_blank" href="temp/'. $file .'">download</a><br/>'; 
    } 
exit; 
} 
// if not, return to index.php, or whatever page the client was on 
header('location: index.php'); 
?> 
関連する問題