1

我正在创建一个网站,我想允许用户在浏览网站时上传多个文件。

上传完成后,最好触发 Javascipt 事件,以允许用户指定与上传文件相关的其他信息(例如照片位置、标签等),所需的功能是:

  1. 单个上传操作允许多个文件
  2. 显示一个可选的进度指示器(至少以“x of y 个文件上传”的方式)
  3. 无需将用户绑定到单个页面即可

如何实现这些功能?非常感谢任何建议!


编辑

如果使用弹出窗口处理上传,我该如何:

  1. 通知用户(在“主”页面上)上传已完成,或者出现错误?
  2. (更重要的是)将 $_FILES 数组传递给弹出窗口?我希望用户能够单击主窗口上的“上传”,或者无论如何从主窗口开始上传(例如在主窗口上拖放文件)。
4

1 回答 1

3

由于导航站点会切换页面,并且您的站点上不太可能有完整的 ajax 导航,因此在第二个弹出窗口中上传文件可能会有所帮助。不过,不确定如何(如果)实现它,但由于您需要一次上传多个文件,恐怕您一定会使用闪存。

编辑

所以解决方案可能如下所示:

当用户单击“选择文件”按钮时,您会弹出一个新窗口,他将能够在其中实际选择文件(如果需要多文件上传,则通过闪存)。并通知上传进度使用postMessage。虽然postMessage 在这种情况下不会在 IE 中工作,但您可能会以某种方式将消息发送到服务器并从服务器返回到页面。

另一个疯狂的想法是不使用弹出窗口,而是让用户首先选择页面上的文件,但是一旦用户选择了文件,就会使页面上的所有链接target=_blank发生在另一个选项卡中以使任何后续导航发生。我知道这是 hacky 并且不完全是用户友好的,但可能会有所帮助。

无论如何,我会事先通知用户,在这两种情况下都会出现一个新窗口。

编辑2

还有一个更疯狂的想法。当用户选择文件并单击链接时,创建一个 iframe,它将覆盖整个页面并隐藏其下方的原始页面并使链接在 iframe 中打开。但它看起来更加hackish,看起来你会遇到很多麻烦。

于 2012-07-17T09:28:58.643 回答