ファイルダウンロードjavaコード実装
1841 ワード
昨日の夜、ファイルのアップロードを書いたので、今日はファイルのダウンロードをしたいです.ファイルのダウンロードを受け取ったら、私たちはまず考えを整理します.
ファイルのダウンロードは、サーバ(導入したプロジェクト)からリソースファイルを読み出し、responseを介してクライアントに返すことが多い.実はtomcatはすでにファイルのアップロードに対してとても良いパッケージがあって、私達はダウンロードするファイルの経路とファイルのバイトのストリームを知っているだけで簡単にファイルのダウンロードの機能を実現することができます.あまり言わないで、直接コードをつけてください.
中にはファイルのダウンロード方法もあり、泥棒は簡単です.直接ハイパーリンクでファイルを指定し、クライアントがファイルをクリックすると自動的にダウンロードされます.しかし、ブラウザが認識するファイルであれば、ダウンロードせずにブラウザが直接開くという弊害もある.コードは次のとおりです.
最後にもう一つ言いますが、私は上記のコードを実現する過程で、本当にいくつかの問題に遭遇しました.インストールしたばかりのtomcatの多くの構成が変更されていないため、パス読み取りエラーが発生しました.実は理由は簡単です.配置されたプロジェクトはtomcatではなく、eclipseの.metadata.pluginsorg.eclipse.wst.server.coreディレクトリの下にあります.実は、eclipseの導入経路でも間違いはありませんが、誰が本人を不注意と呼んでいますか.downloadのフォルダディレクトリはwebContentの下にありません.
はい、言う問題も問題ではありませんが、自分の小さな問題でtomcatの構成の詳細を知ることができて、収穫があります.皆さんもこの文章を読んでから収穫があることを願っています.もし何か問題があれば、一緒に検討して、みんなで進歩してほしいです.
ファイルのダウンロードは、サーバ(導入したプロジェクト)からリソースファイルを読み出し、responseを介してクライアントに返すことが多い.実はtomcatはすでにファイルのアップロードに対してとても良いパッケージがあって、私達はダウンロードするファイルの経路とファイルのバイトのストリームを知っているだけで簡単にファイルのダウンロードの機能を実現することができます.あまり言わないで、直接コードをつけてください.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("filename");
//
String path = request.getServletContext().getRealPath("WEB-INF/download/"+name);
System.out.println(path);
// MIME
response.setContentType(getServletContext().getMimeType(name));
// , ,
response.setHeader("Content-Disposition", "attachment;filename="+name);
//
InputStream is = new FileInputStream(path);
OutputStream os = response.getOutputStream();
byte[] flush = new byte[1024];
int len = 0;
while((len = is.read(flush))!=-1){
os.write(flush,0,len);
os.flush();
}
is.close();
}
中にはファイルのダウンロード方法もあり、泥棒は簡単です.直接ハイパーリンクでファイルを指定し、クライアントがファイルをクリックすると自動的にダウンロードされます.しかし、ブラウザが認識するファイルであれば、ダウンロードせずにブラウザが直接開くという弊害もある.コードは次のとおりです.
ハイパーリンクによるダウンロード
みの !
最後にもう一つ言いますが、私は上記のコードを実現する過程で、本当にいくつかの問題に遭遇しました.インストールしたばかりのtomcatの多くの構成が変更されていないため、パス読み取りエラーが発生しました.実は理由は簡単です.配置されたプロジェクトはtomcatではなく、eclipseの.metadata.pluginsorg.eclipse.wst.server.coreディレクトリの下にあります.実は、eclipseの導入経路でも間違いはありませんが、誰が本人を不注意と呼んでいますか.downloadのフォルダディレクトリはwebContentの下にありません.
はい、言う問題も問題ではありませんが、自分の小さな問題でtomcatの構成の詳細を知ることができて、収穫があります.皆さんもこの文章を読んでから収穫があることを願っています.もし何か問題があれば、一緒に検討して、みんなで進歩してほしいです.