0

私の Web アプリケーションは、jsp/javascripts を使用して作成されています。バックエンド Java。画像を webapp/images フォルダーに保存したくないため、webapplication の外部に画像を保存するコードを実装することができました (サーバーがダウンしてアプリを再構築すると、保存された画像が失われるため)。ローカル ディレクトリに保存した画像に Web アプリから再度アクセスしたいのですが、方法がわかりません。jetty サーバーから自分のローカル フォルダーにアクセスするにはどうすればよいですか。jetty サーバーは同じローカル マシンで実行されています...

4

1 に答える 1

1

/imageファイルを保存および読み取るためのパスを取得する

getServletContext().getRealPath("/images");

サーブレットから外部の場所からファイルを読み取ることもできます

    File image = new File("d:\\image\1.jpg");
    response.setBufferSize(DEFAULT_BUFFER_SIZE);
    response.setContentType(contentType);
    response.setHeader("Content-Length", String.valueOf(image.length()));
    response.setHeader("Content-Disposition", "inline; filename=\"" + image.getName() + "\"");

    BufferedInputStream input = null;
    BufferedOutputStream output = null;

    try {
        // Open streams.
        input = new BufferedInputStream(new FileInputStream(image), DEFAULT_BUFFER_SIZE);
        output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);

        // Write file contents to response.
        byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
        int length;
        while ((length = input.read(buffer)) > 0) {
            output.write(buffer, 0, length);
        }
    } finally {
        // Gently close streams.
        close(output);
        close(input);
    }

こちらもご覧ください

于 2012-06-21T04:54:15.960 に答える