操作步骤为
1、用户上传一文件(正在上传提示层弹出显示)(在Iframe内通过表单提交文件)
2、服务器端逻辑处理文件后。生成新的文件写入到Response,当出错时以文本形式输出错误消息,
3、浏览器接到响应。关闭正在上传提示层。我使用iframe的onload事件来感知是否响应完成。问题是:
出错时,也就是输出文本时,能触发Onload事件,正在上传层能关闭正常文件下载不触发Onload事件。正上传层无法关闭。

解决方案 »

  1.   

    又要提AJAX了.
    生成新文件,如果是正常的,它有个传输过程.在这个传输过程里,你完全可以用AJAX来探测一下服务器端对于上传文件的处理结果是否正常.
    也就是说,在服务器处理文件后,要设置一个结果(可以存在SESSION或数据库等任何地方能取到的地方).
    然后AJAX根据你一般处理的时长提前去取这个结果,如果没有,代表处理没完成,就隔会儿再取,直到取到结果,结果或是正常,或是不正常(不正常的话,可以不管,因为它已经导致ONLOAD事件关闭上传层了).正常的话,报个处理完毕,或者什么的,就由你决定了.
      

  2.   

    用setTimeout判断客户端的上传div是否close、display == none || ""
      

  3.   

    那启不是还得做个Comet连接呀。间隔时间还不能太长了。(上传文件大,下载文件很小)这样也是不错的办法,就是对服务器无形中增加了些许负担。要是更好的纯客户端的就好了