首頁 > Java > java教程 > 如何實作 Servlet 進行檔案下載?

如何實作 Servlet 進行檔案下載?

Barbara Streisand
發布: 2024-11-16 04:54:02
原創
800 人瀏覽過

How to Implement a Servlet for File Downloads?

使用Servlet 實作檔案下載

問題陳述

問題陳述

問題陳述

    此問題於從伺服器下載檔案。 Servlet 接收檔案名稱作為 GET 請求中的參數,旨在將此檔案傳回使用者的瀏覽器以供下載。
  1. 解決方案

    實作一個簡單的檔案下載servlet,請考慮以下步驟:

  2. 在web .xml 中設定Servlet:

    將servlet定義和映射新增至 web.xml檔案以使 servlet 可透過 Web 伺服器使用。

    • 實作 DownloadServlet:
    • 建立一個 servlet 類,擴充 HttpServlet 類,以處理檔案下載請求。在 doGet 方法中:
    • 從請求參數中提取檔案名稱。
    從資料庫或其他來源取得文件的資訊(名稱、類型)。
在回應標頭中設定適當的內容類型以指示文件類型。

使用「attachment; filename=yourcustomfilename.pdf」設定 Content-disposition 標頭以提示瀏覽器下載檔案。

以位元組流方式開啟文件,並將其分塊寫入回應輸出流,直到文件完全傳輸。

public class DownloadServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String fileName = request.getParameter("id");
        response.setContentType("application/pdf");
        response.setHeader("Content-disposition", "attachment; filename=yourcustomfilename.pdf");
        File my_file = new File(fileName);
        OutputStream out = response.getOutputStream();
        FileInputStream in = new FileInputStream(my_file);
        byte[] buffer = new byte[4096];
        int length;
        while ((length = in.read(buffer)) > 0) {
            out.write(buffer, 0, length);
        }
        out.flush();
    }
}
登入後複製
範例程式碼 以下是 DownloadServlet 的範例實作:

以上是如何實作 Servlet 進行檔案下載?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板