2016-07-13 4 views
-1

私は、Spring MVCとHibernateを使用して任意のタイプのファイルをアップロードできる、ある種のドロップボックスのWebアプリケーションを構築しています。私はアップロードのためのタイプ "ファイル"の入力を持って、私はパラメータとしてマルチパートファイルをとり、特定のユーザーのためのデータベースにそのファイルを格納することによってアップロード要求を処理するコントローラを持っています。問題は、ファイルをクライアントに引き渡す方法がわかりません。データベースからファイルを取得したら、ウィンドウをポップアップしてダウンロードパスを尋ねるために、ファイルを戻すにはどうすればよいですか?または、これについて私がどこで読むことができるか教えてください。クライアントにSpringを使ってファイルをダウンロードする方法を教えてください。

おかげ

+0

また、私はテンプレートエンジンとしてtymeleafを使用します。 –

答えて

0

あなたはこのようなものを作成できます多分あなたは、いくつかのパラメータまたはパス変数を追加する必要がある、ユーザーがダウンロードしたい文書を識別するためにURLを作成します

@RequestMapping(value = "/yourURL/download", method = RequestMethod.GET) 
public void download(HttpServletResponse response) { 
    ...Find your file to download 
    File file = //retrieve your file 
    String mimeType = URLConnection.guessContentTypeFromName(file.getName()); 
    if (mimeType == null) { 
     logger.debug("mimetype is not detectable, will take default"); 
     mimeType = "application/octet-stream"; 
    } 

    try { 
     response.setContentType(mimeType); 
     response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", file.getName())); 
     response.setContentLength((int) file.length()); 
     InputStream inputStream = new BufferedInputStream(new FileInputStream(file)); 
     FileCopyUtils.copy(inputStream, response.getOutputStream()); 
    } catch (Exception ex) { 
     logger.error("An exception has occurred trying to download the file", ex); 
    } 
} 
  1. DBからファイルを探し、Fileオブジェクトを構築してmimeTypeを決定します
  2. ファイルに応答を追加し、ユーザーが使用しているブラウザに従ってファイルが自動的にダウンロードされるか、またはダウンロードを要求されます
  3. JSP/HTMLファイルでは、このURLのhrefでボタン/リンクを作成する必要があります。
+0

サーバーレスポンスにファイルが含まれている場合、ダウンロードウィンドウはブラウザによって自動的に開きますか? –

+0

@ BobernacAlexandru yeap、それをHttpServletResponseに追加すると、ブラウザの正常な動作です。 – cralfaro

+0

@BobernacAlexandru試しましたか?今あなたのために働いていますか? – cralfaro

関連する問題