如何阅读&使用struts在一个请求中打开多个文件?

时间:2013-07-24 14:15:43

标签: java struts2

我要求用户看到页面中的文件列表,该列表是目录中的列表。从那里他们将选择多个文件,然后点击查看按钮。然后我们需要从Drive中读取相应的文件,并且需要打开所有用户都选择的文件。我需要使用Struts2 / servlet来实现它。

2 个答案:

答案 0 :(得分:0)

从我的用户那里,用户看到位于服务器上的目录的内容,对吗?

此外,您显示一个文件列表以及一些选择方法(复选框?),用户用它来选择文件,然后单击视图按钮。

如果我是正确的,您可以使用javascript打开一个新的选项卡/窗口或对话框(例如jQuery对话框),从服务器读取文件或其内容。只需迭代列表中的选定条目,然后将它们逐个传递给打开选项卡/窗口/对话框的JavaScript函数。

答案 1 :(得分:0)

目前尚不清楚你是否想要

  1. 在客户端浏览器中打开每个文件 ,或
  2. 将每个文件 下载到客户端的文件系统,或
  3. 将包含所有文件的存档 下载到客户端的文件系统;
  4. 在1.或2.您需要创建多个请求targeting multiple windows, using target="_blank", or by AJAX, etc

    通过操作HttpResponse Header对象,您可以指示浏览器何时打开或下载文件:Content-Disposition: inline;将尝试在浏览器中打开它,而Content-Disposition: attachment;将执行默认操作(打开时默认桌面应用程序,下载或询问用户是否将之前的任何内容都标记为默认值

    请注意,一次打开或下载多个文件可能会遇到几个问题;它可能会使客户端过载/崩溃,服务器过载/崩溃,导致带宽问题等;如果用户选择100个文件怎么办?你可以打开100个标签,或100个窗口,或者询问100次保存每个文件的位置等等......

    如果你想创建一个动态ZIP,you can find a kick-off example on how to do it in Struts2 here,(使用像Servlet这样的Action,并返回NONE); 我的文件来自数据库,你的文件来自文件系统,但代码是一样的。