1、
struts2:
后台得到一个被封装好的File对象,然后把file对象包装成一个输入流,然后在服务器端文件系统中新建一个文件,将该文件包装成输入流,然后不断从输入流中读取字节转到输出流中,这个过程是一个持续的过程。
中间使用缓冲区来进行字节数据的中转,而且每一次中转的字节数都可以拿到,就想着如果在这个过程中把已经传输的写入到本地文件系统中的字节数记录下来(传输的文件长度),而且文件的总长度也可以获取。
这个信息保存在session里面,再在客户端不断的发ajax请求从里面拿到这个值,然后再客户端将该值展示出来即可。
更确切的说是,我们所执行的数据传输其实只是从服务器端的内存系统或临时文件系统转到我们规定的一个文件中去。这个并不是真正意义上的进度条。
2、 servlet添加监听器
还有一种方式就是使用servlet来完成文件上传。后台得到一个被封装好的File对象,然后把file对象包装成一个输入流,然后在服务器端文件系统中新建一个文件,将该文件包装成输入流,然后不断从输入流中读取字节转到输出流中,这个过程是一个持续的过程。
中间使用缓冲区来进行字节数据的中转,而且每一次中转的字节数都可以拿到,就想着如果在这个过程中把已经传输的写入到本地文件系统中的字节数记录下来(传输的文件长度),而且文件的总长度也可以获取。
这个信息保存在session里面,再在客户端不断的发ajax请求从里面拿到这个值,然后再客户端将该值展示出来即可。
更确切的说是,我们所执行的数据传输其实只是从服务器端的内存系统或临时文件系统转到我们规定的一个文件中去。这个并不是真正意义上的进度条。
2、 servlet添加监听器
在上传的action中添加进度条监视器,因为在传输的工程中监视器可以获取上传的大小信息和文件总大小信息。
将传输信息、文件总大小信息保存在session里面或者是一个工厂里面。
再让客户端不断的发出请求,来获取进度信息并进行展示。