当前位置: 代码迷 >> Java Web开发 >> java webservice上传大文件,该怎么处理
  详细解决方案

java webservice上传大文件,该怎么处理

热度:9520   发布时间:2013-02-25 21:19:01.0
java webservice上传大文件
webservice上传文件,我用byte[]进行传递,没有问题,但是文件过大就不行了,读出来的数组太大造成内存溢出
这个大文件上传有什么好的方式

------解决方案--------------------------------------------------------
直接传文件??可以传文件的url
------解决方案--------------------------------------------------------
这个要借助于第三方控件来实现超大文件的上传了。普通的方式肯定不行。因为你上传100MB的文件,服务器就得为你分配100MB的内存。人数一多,肯定内存溢出了。
------解决方案--------------------------------------------------------
传统的HTML方式已经难已满足超大文件的上传。别说是100MB,50MB对服务器来说都是非常大的,服务不仅要专门开一个链接等待这个文件上传完毕,还要分配同等大小姐的内存来保存这个文件对服务器来讲压力相当的大。就算是用Flash也不行,因为目前的Flash不支持断点续传操作,也不支持文件分块操作,Flash和传统的HTML方式上传原理一样。用Flash上传100MB图片,服务器也要分配100MB的内存。10个用户同时上传100MB数据的话,就要吃掉服务器1G的内存。
向QQ邮箱中的超大附件上传功能,115网盘中的超大附件上传控件,华为网盘(DBank),金山快盘他们都是使用控件来实现超大文件上传功能的。这样做主要是减轻服务器压力,节省服务器内存,同时提高用户体验。

------解决方案--------------------------------------------------------
我们公司是用的Xproer.HttpUploader3这个控件
文件MD5值计算进度:

文件MD5值计算完毕

服务器根据MD5检测是否存在相同文件

续传文件

从服务器加载文件列表

文件上传中

文件上传完毕

上传文件夹

与Discuz!X2整合-后台安装断点续传控件

与Discuz!X2整合-后台启用断点续传控件

与Discuz!X2整合-后台断点续传控件启用成功

与Discuz!X2整合-前台发帖页面

与Discuz!X2整合-上传


------解决方案--------------------------------------------------------
探讨

我们公司是用的Xproer.HttpUploader3这个控件
文件MD5值计算进度:

文件MD5值计算完毕

服务器根据MD5检测是否存在相同文件

续传文件

从服务器加载文件列表

文件上传中

文件上传完毕

上传文件夹

与Discuz!X2整合-后台安装断点续传控件

与Discuz!X2整合-后台启用断点续传控件

与Discuz!X2整……

------解决方案--------------------------------------------------------
探讨

引用:

我们公司是用的Xproer.HttpUploader3这个控件
文件MD5值计算进度:

文件MD5值计算完毕

服务器根据MD5检测是否存在相同文件

续传文件

从服务器加载文件列表

文件上传中

文件上传完毕

上传文件夹

与Discuz!X2整合-后台安装断点续传控件

与Discuz!X2整合-后台启用断点续传控……

------解决方案--------------------------------------------------------
探讨

引用:

引用:

我们公司是用的Xproer.HttpUploader3这个控件
文件MD5值计算进度:

文件MD5值计算完毕

服务器根据MD5检测是否存在相同文件

续传文件

从服务器加载文件列表

文件上传中

文件上传完毕

上传文件夹

与Discuz!X2整合-后台安装断点续传控件

与Discu……

------解决方案--------------------------------------------------------
可以分段传啊,一次性传肯定会挂
  相关解决方案