gpt4 book ai didi

gwt - 用户如何在客户端下载文件(Google Web Toolkit)

转载 作者:行者123 更新时间:2023-12-04 04:53:30 25 4
gpt4 key购买 nike

我正在使用GWT(Google Web工具包)制作网站。
我需要向用户显示一个表,然后让用户下载表的内容。

在客户端,当用户按下“下载”按钮时如何下载文件?

“下载”按钮具有onClick()监听器。客户端类扩展了Composite

我试图使该类扩展HttpServlet,但是它变得太复杂了。

我已经在这里阅读帖子:

  • http://www.mkyong.com/java/how-to-download-file-from-website-java-jsp/
  • How to use GWT when downloading Files with a Servlet?

  • 但是我仍然不知道如何向客户端的用户提供可下载的文件。

    最佳答案

    您确实需要区分GWT客户端Java代码和服务器端Java代码。

    在GWT Java代码的客户端

    String url = GWT.getModuleBaseURL() + "downloadService?fileInfo1=" + fileInfo1;
    Window.open( url, "_blank", "status=0,toolbar=0,menubar=0,location=0");

    在您的非gwt Java代码中的服务器端-

    在web.xml中
    <servlet>
    <servlet-name>downloadService</servlet-name>
    <servlet-class>AAA.BBB.CCC.DownloadServlet</servlet-class>
    </servlet>

    <servlet-mapping>
    <servlet-name>downloadService</servlet-name>
    <url-pattern>/<gwtmodulename>/downloadService</url-pattern>
    </servlet-mapping>

    在服务器程序包代码中,一个servlet
        public class DownloadServlet extends HttpServlet{
    protected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException
    {
    String fileName = req.getParameter( "fileInfo1" );

    int BUFFER = 1024 * 100;
    resp.setContentType( "application/octet-stream" );
    resp.setHeader( "Content-Disposition:", "attachment;filename=" + "\"" + fileName + "\"" );
    ServletOutputStream outputStream = resp.getOutputStream();
    resp.setContentLength( Long.valueOf( getfile(fileName).length() ).intValue() );
    resp.setBufferSize( BUFFER );
    //Your IO code goes here to create a file and set to outputStream//

    }
    }

    确保将文件内容推送到 **outputStream**

    关于gwt - 用户如何在客户端下载文件(Google Web Toolkit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725198/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com