-1

Webアプリディレクトリの外に画像を保存しようとしています。アプリケーションを共有でホストしました。そのため、プロジェクトを展開するためのルートフォルダーを取得しました。Webアプリの外部にディレクトリを作成して、画像をアップロードできるようにするにはどうすればよいですか。アプリを再デプロイしても、それらのイメージは失われません。

例えば。ルートスペースを取得し、そこにすべてのビルドフォルダーを貼り付けました。アプリを再デプロイしてもアップロードフォルダーが失われないようにしたい。

fileSystemPath= "/files"; 
 try{                
     File destFile  = new File(fileSystemPath, thempicFileName);
         FileUtils.copyFile(thempic, destFile);
         String path=fileSystemPath+"/"+thempicFileName;  

上記のコードを使用すると、フォルダがDドライブ(現在の作業ディレクトリ)に作成され、dbファイルに次のように保存されます。jspページから/files/smg.pngその画像にアクセスしようとすると、その画像が表示されません。<img src="/files/smg.png"/>

プロジェクトとファイルが正確にある場合..上記のコードを使用すると、画像が保存されD:\myprojectDir\files、プロジェクトの場所は次のようになります。D:\myprojectDir\projectfolder

このプロジェクトはSTRUTS2で開発中です

jspで画像を受信できるように、コードをどのように記述しなければならないかを教えてください。

4

2 に答える 2

0

サーバー アプリからアクセスできる任意の場所に画像を保存できます。

ファイルを開き、jsp に入力した特定のサーブレットの URL を使用して、ストリームを応答に送信する必要があります。

これはSpringの例です:

            File file = new File(...);
            Resource resource = new FileSystemResource( file );

            HttpHeaders headers = new HttpHeaders();
            headers.setContentType( MediaType.IMAGE_JPEG );

            return new ResponseEntity<Resource>( resource, headers,
                    HttpStatus.OK );

編集済み:Google で検索する例がたくさんあります:「http 応答への画像のストリーミング」。

于 2012-12-17T08:26:30.523 に答える
0

ブラウザーから webapp 以外のものに直接アクセスすることはできません (さらに、いくつかのフォルダーが保護されています)。可能であれば、セキュリティ ホールを想像してみてください。

ただし、ファイルシステムからファイルを読み取り、ブラウザに返す「プロキシ」サーブレット/JSP を作成することはできます。tomcat ユーザーへの適切なアクセスを確保し、selinux を使用している場合はアクセス権を付与する必要がある場合があります。

ただし、正当な理由がなく、目的のパスにのみアクセスしていることをすべて確認しないでください (そのため、誰もあなたに のようなファイルを渡していないことを確認してください../../mySecrectAccountPasswords.txt)。

于 2012-12-17T08:23:38.900 に答える