加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在使用Servlet下载文件时如何使用GWT?

发布时间:2020-12-14 05:05:16 所属栏目:Java 来源:网络整理
导读:我正在创建一个简单的项目,允许我使用gwt上传和下载文件.我无法下载我的服务器上的文件. 对于上传文件,我使用了http://code.google.com/p/gwtupload/,然后按照说明进行操作.我的文件存储在服务器外部的网站容器(在硬盘上), 现在,当谈到下载文件时,我希望用户
我正在创建一个简单的项目,允许我使用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,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,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”>标签.如果要动态创建锚点类,可以使用锚点类.当用户点击链接时,浏览器将自动下载该文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读