簡體   English   中英

使用Servlet下載文件時如何使用GWT?

[英]How to use GWT when downloading Files with a Servlet?

我正在創建一個簡單的項目,允許我使用gwt上傳和下載文件。 我在下載服務器上的文件時遇到問題。

對於文件上傳,我使用了http://code.google.com/p/gwtupload/並按照其中的說明操作。 我的文件存儲在網站容器外部的服務器上(在硬盤上),

現在,在下載文件時,我希望用戶按下下載按鈕,當前選擇的任何項目都將下載。 我真的不知道如何做到這一點

我知道我需要一個下載servlet

public class DownloadAttachmentServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    // TODO Auto-generated method stub
    super.doGet(req, resp);
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    String fileName = (String) req.getSession().getAttribute("fileName");

    YFUser user = (YFUser) req.getSession().getAttribute(TestServiceImpl.SESSION_USER);
    if (user == null)
        throw new ServletException("Invalid Session");

    InputStream in = null;
    OutputStream out = resp.getOutputStream();

    FileInputStream fIn = new FileInputStream(fileName);
    byte[] buffer = new byte[4096];
    int length;
    while ((length = in.read(buffer)) > 0){
        out.write(buffer, 0, length);
    }
    in.close();
    out.flush();

}
}

目前我將傳遞一個fileName字符串來檢索要測試的文件

現在我迷失在客戶端做什么,我有一個簡單的

public class DownloadFilePanel extends Composite {


public DownloadFilePanel(final YFUser user , final String fileName){

    final Element downloadIframe = RootPanel.get("__download").getElement();

    VerticalPanel content = new VerticalPanel();
    content.add(new Label("Download For this File : " + fileName));

    Button button = new Button("Download");
    button.addClickHandler(new ClickHandler(){
        @Override
        public void onClick(ClickEvent event) {
            // i do not know what to do here
    });
            content.add(button);
    initWidget(content);


}


}

上面是一個簡單的小部件,它將提供一個面板,允許基於fileName下載文件

正如您在上面所看到的,我不知道該怎么做才能下載該文件

有沒有人可以指出我正確的方向?

在客戶端,只需創建一個常規的<a href="path/to/servlet">標記。 如果要動態創建它,可以使用Anchor類。 當用戶單擊該鏈接時,瀏覽器將自動下載該文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM