JAVA WEB项目文件上传下载求思路,求指教

蛋炒饭加冰块 发布于 2017/12/15 20:07
阅读 434
收藏 1

1.使用的框架是springmvc + mybatics
2.问题点在于使用java上传文件时如何把进度传给前端制作出一个进度条。
3.目前本人使用七牛云java sdk连接了七牛云,并且能够成功上传文件。但是不知如何返回进度信息给前端。
4.这里补充一个问题:前端的File提交后是存放在哪里的?使用ajax的xhr貌似只能获取到文件从前端缓存起来的进度,而不能真正获取文件上传到七牛云的进度。

希望有相关经验的大神可以提供一下思路,或者解答一下问题,谢谢!

加载中
0
kakai
kakai
https://my.oschina.net/zkpursuit/blog/798916 可以看看我这个博客,使用的plupload组件,能显示上传进度,是不是实时的就没有深究了
蛋炒饭加冰块
蛋炒饭加冰块
只是本地上传吗
0
CEADelta
CEADelta
文件上传前端通过webworker 单独开一个线程来负责上传,如果文件大,先分片,按队列上传,可以记录当前已经上传到哪一个文件块
0
Kit_lee
Kit_lee

springmvc的话,一般都是通过重写spring的mutilpartResolver的parseRequest方法,设置监听器实现,可以百度一下,但如无必要,我是不建议用的,毕竟很多前端上传组件都有实现进度条,无必要后端实现,花功夫。

Kit_lee
Kit_lee
回复 @蛋炒饭加冰块 : 然后最新的方式则是使用XMLHttpRequest Level 2 ,已经支持用 AJAX 直接传输文件,并且提供了 onprogress、onloadstart 等事件来跟踪进度。事件的 ProgressEvent 参数有提供上传进度信息
Kit_lee
Kit_lee
回复 @蛋炒饭加冰块 : 七牛云没接触过,但web前端的js不能上传ftp吧?(nodejs有) 。以前要获取上传进度,一种方式是通过长连接,用AJAX不断访问服务器获知进度,这是需要后端提供相应数据的,即我回复的方式。二是通过flash等前端组件,不需要后端,纯从前端则可获取发送大小、速度。
蛋炒饭加冰块
蛋炒饭加冰块
那上传文件到ftp服务器或者七牛云这个动作是由前端实现吗
0
独孤晓林

用html5实现ajax上传,进度信息前端控制!

0
Kit_lee
Kit_lee

ProgressEvent是这样用

  var client = new XMLHttpRequest();
  //定义一个请求
  client.open(.......);
  //定义onprogress事件的回调函数,pe即ProgressEvent
  client.onprogress = function(pe) {
    if(pe.lengthComputable) {
      //总大小
      progressBar.max = pe.total;
      //加载大小,凭此两参数算出进度
      progressBar.value = pe.loaded;
    }
  }
  
  client.send();

 

返回顶部
顶部