用Java在Portlet中流式传输文件

问题描述

| 我对Java很陌生。我正在尝试制作Vaadin portlet,并且基本上需要允许用户下载文件。可通过需要基本身份验证(用户名和密码)的GET请求访问该文件用户可以看到这些凭据,因为它们将是它们的凭据。 我知道我可以将文件下载到托管Portlet的服务器,然后使其可用。但是其中一些文件很大(有些超过500 mb)。是否可以处理传入的文件(而不将其保存到服务器)并将其交给用户? 任何建议或建议都将真正帮助您,我唯一真正的经验是将文件保存到本地计算机(在本例中为csv),然后让用户下载该文件。 谢谢!     

解决方法

您可能不希望将要提供的文件的全部内容存储在内存中。如何将其保存在数据库中然后从那里流式传输!!!您可以使用PreparedStatement#setBinaryStream将获得的InputStream写入数据库。 另外,请看看Apache FileUpload