上传文件有时候需要很久,我想做到的是点了上传,就会弹出一个“文件上传中....”
最好还有一个“取消”功能。但我实验在上传的servlet中写,都是上传完了才显示出来“文件上传中....”,我想这东西必须用js在客户端来写吧,可是客户端怎么能知道是否上传完呢?另外上传中的十几秒我想用户应该是无法获得页面响应的,怎么让用户在这段时间里无法点网页其他按钮?(只能点取消)
我现在的上传过程中,用户还可以随便点的,会造成上传失败。

解决方案 »

  1.   

    不太明白lz的意思,如果你要是想做个进度条的话就试试ProgressMonitorInputStream吧,把你的InputStream封装在ProgressMonitorInputStream就行了。
      

  2.   

    ProgressMonitorInputStream 是js的对象,还是java的类?似乎有进度的很麻烦吧,浏览器怎么能知道上传文件有多大?我不想做个有进度的,只是在上传过程中显示“文件上传中”,同时不让用户能点页面上别的地方,即上传时间段没有用户页面响应。(避免用户乱点造成上传失败)。
      

  3.   

    lz 可以看看这篇文章,里面有源码下载:带进度条的文件上传,可以去掉.http://www.java114.com/content51/content2640.html
      

  4.   

    ProgressMonitorInputStream是java类,你把文件流包装到ProgressMonitorInputStream里面,它会自动计算进度(当然,文件足够大,否则进度条无法显示)。
    至于你说的那个需求,我觉得可能要用线程。我也需要查查去。帮lz关注了:)
      

  5.   

    在服务器端处理文件的时候向session里写进度.在页面中利用ajax轮寻session,获取到上传的进度.提供一个简单的思路...
      

  6.   

    用js 显示一个div,遮住按钮,上传完了跳转一个页面。只不过这样不能点取消~~
      

  7.   

    再提供一个关于进度条的地址http://www.java2000.net/viewthread.jsp?tid=1457