导航其他页面时上传多个文件 - howto?

时间:2012-07-17 09:16:58

标签: php javascript file-upload asynchronous

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

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

  1. 允许单个上传操作的多个文件
  2. 显示可选的进度指示器(至少在“x of y files uploaded”方式中)
  3. 在不将用户绑定到单个页面的情况下执行此操作
  4. 如何实现这些功能? 非常感谢任何建议!


    修改

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

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

1 个答案:

答案 0 :(得分:3)

由于导航网站将切换页面,并且您的网站上不太可能存在完整的ajax导航,也许它可以帮助以某种方式在第二个弹出窗口中上传文件。不知道如何(如果)它可以实现,但由于你需要一次上传多个文件,我担心你一定会使用flash。

修改

所以解决方案看起来像这样:

当用户点击“选择文件”按钮时,您会弹出一个新窗口,在那里他可以实际选择文件(如果需要多文件上传,则通过flash)。并使用postMessage通知上传进度。虽然在这种情况下postMessage isn't going to work in IE,但您可能以某种方式将消息发送到服务器并从服务器发送回页面。

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

在任何情况下,我都会事先通知用户两个场景中都会出现一个新窗口。

<强> EDIT2

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