0

ディレクトリ ピッカー フォームの入力要素を作成したいと考えています。これにより、ユーザーはネットワーク ディレクトリを選択して、サーバー プロセスのターゲットとして選択して渡すことができます。これは、ユーザーが自分のマシンと Web サーバーから見えるネットワーク共有を参照し、サーバー アプリケーションによる処理を要求するフォルダーを選択するというものです。<input type="file">これをタグのように機能させ、ファイルの代わりにフォルダーの選択のみを許可したいと思います。

HTML ファイル ピッカー入力はこの動作をサポートしていないことを読みましたが、Java サーブレットまたは JavaScript を使用すると可能かもしれませんが、これを示すコードは見つかりませんでした。このようなフォーム要素を作成することは可能ですか? Spring MVC 3 を使用しています。これはイントラネット アプリケーションであるため、セキュリティは問題になりません。Java ベースの Web 開発は初めてなので、どこから始めればよいかわかりません。

4

1 に答える 1

0

ユーザーがディレクトリに出入りするためのインターフェイスを持つことができます

これのサーブレットまたは Spring-MVC コントローラーの部分は非常に単純です (例外などを除く)。

@RequestMapping(value = "/network/*")
@ResponseBody  // serialize to json since you are using javascript 
public List<String> getDirectory(@RequestParam("direction") String direction, HttpServletRequest request) {
    List<String> paths = new LinkedList<String>();

    String path = request.getRequestURI();
    path = path.substring(path.indexOf("/network") + 8); // gets everything after /network

    if ("up".equals(direction)) { // want to go up one folder
        File parent = new File(path).getParentFile(); // get the parent, this might return null so have to check
        paths.addAll(Arrays.asList(parent.list()));
    } else if ("into".equals(direction)) {
        File directory = new File(path); // get all the files in the current directory
        paths.addAll(Arrays.asList(directory.list()));
    }

    return paths;
}

次に、 ajax リクエストを作成します

http://www.your-intranet.com/network/var/this/path/wanted?direction=into

その中のすべてのファイルとフォルダーの JSON リストを取得します。または

http://www.your-intranet.com/network/var/this/path/wanted?direction=up

に相当

http://www.your-intranet.com/network/var/this/path?direction=into

パス抽出ロジックをどこで実行したいかによって異なります (おそらくサーバー上で、それが正しいかどうかを知っているため)。

これの UI 部分は少し難しいのでここでは説明しませんが、json を解析して、フォルダー アイコンを表示するか、操作ごとに異なるボタンを備えたファイル アイコンを表示するかを決定する必要があります。

また、Linux または Windows OS に応じてパスをいじる必要があります。

于 2013-05-02T20:59:59.910 に答える