0

ダウンロード用のディレクトリがあるホームページがあります。このホームページのすべてのファイルをそのディレクトリから自動的に読みたい。

たとえば、ホームページと、表示したいダウンロードファイルを含むwww.homepage.orgサブディレクトリがあります。resources/downloads

SpringとJSPを実行しているJavaサーバーがあり、次のことを試しましたが、まったく機能しませんでした。

    String path = request.getContextPath();
    path += DOWNLOADS;
    URL url = null;
    String server = request.getServerName();
    try {
        url = new URL("https", server, request.getLocalPort(), path);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    if (url != null) {
        String externalForm = url.toExternalForm();
        File directory = new File(externalForm);
        String[] files = directory.list();
        for (String file : files) {
            ;
        }
    }
4

4 に答える 4

1

サーブレットを使用できます。リソースディレクトリがWebアプリのルートディレクトリにある場合は、

PrintWriter writer = response.getWriter();
String path = getServletContext().getRealPath("/resources/downloads");
File directory = new File(path);
if(directory.isDirectory()){
   String[] files = directory.list();
   for (String file : files) {
        writer.write(file + "<br/>");
   }
} else writer.write(directory.getAbsolutePath() + "could not be found");
于 2012-11-29T15:38:48.827 に答える
0

FTPマネージャーを使用して解決策を見つけました...ここでコードを表示できます

問題の解決に役立つことを願っています。

于 2012-11-29T14:58:52.053 に答える
0

HTTPプロトコルは、「ディレクトリ」内の「ファイル」をリストする方法を提供しません。確かに、プロトコル仕様の観点からは、ディレクトリのようなものはありません。

  • アクセスしようとしているWebサーバーがWebDAVをサポートしている場合は、PROPFINDを使用してコレクション(つまりディレクトリ)の構造を見つけることができます。

  • または、Webサーバーでディレクトリリストが有効になっている場合(およびディレクトリリストが有効になっていないindex.html場合)、リストHTMLをスクリーンスクレイピングできます。

  • そうでなければ、実際の解決策はありません... HTTP/HTTPSを使用します。


質問と回答を読み直すと、ディレクトリリストを取得しようとしているサーブレットと、ディレクトリをホストしているサーブレットが実際には同じマシンで実行されている可能性があることに気付きます。その場合、ファイルシステムを介して情報にアクセスするオプションがあります。ただし、これには、「サーバー」サーブレットがどのように物事を表すかを知っている「クライアント」サーブレットが必要になります。URLはその情報を提供しません(そして提供できません)。

rickzが提供する答えは、考えられるアプローチの1つですが、クライアントサーブレットとサーバーサーブレットが実際に同じサーブレットである場合にのみ機能します。

于 2012-11-29T15:10:38.697 に答える
0

URLではなくディレクトリへのパスを使用してディレクトリを一覧表示する必要があります。ファイルを取得したら、必要に応じて独自のhtmlを作成してWebに配置する必要があります。

ここに、ディレクトリリストを作成してJQueryで参照する良い例があります

ダウンロードセクションのパッケージに含まれているJSPコネクタがあり、JQueryツリーを使用したくない場合は少し調整する必要があります。

幸運を!

于 2012-11-29T15:14:01.567 に答える