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

lhshbest 2014-09-19 10:19:46
各位大神,我最近在开发一个WEB项目,是BS模式的,有一个模块是大文件上传、下载,目前用fileupload 和IO流实现了最原始的文件上传下载,但是,超过1个G的文件在上传和下载的时候,太卡机器和内存了,不靠谱。

在网上看到有大神说可以用FTP来处理大文件上传下载,但是需要创建FTP服务器,这个意见我在和领导讨论的时候,基本上是被否定了。

然后有很多大神又说可以使用文件分块上传下载,比如在CSDN上有个大神的帖子:
Java 文件分块上传客户端源代码
Java 文件分块上传服务器端源代码

针对这两个帖子,我想说的是,我的项目是WEB BS项目,应该不存在客户端代码吧,用户的所有操作都该是使用浏览器来完成的吧,然后,我就有点晕了,不知道该怎么来完成这个大文件上传下载的功能了,请各位大神赐教,先谢了。

用户场景是:
有一个WEB项目,是BS模式的,使用的是springMVC架构。用户使用浏览器(现在只考虑IE)打开项目首页,登录项目,然后可以在个人中心上传下载文件。
上传是点击文件管理里面的上传文件,弹出上传文件的窗口,用户就可以选择本地文件,填写一些信息,然后点击“上传”按钮,后台对上传的文件保存到服务器文件磁盘,完成上传操作。
下载文件的时候是,选择一个其他人上传的文件(文件列表,有“下载”按钮),然后点击下载,服务器端对资源进行响应,获取文件磁盘的指定文件,将文件写入浏览器,然后由浏览器进行下载,就完成了下载操作。
...全文
9529 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinne1987 2014-12-08
  • 打赏
  • 举报
回复
我这几天也在研究这个问题: 1、如不用FTP,也就只能用插件,写activeX,加载到浏览器中。 2、利用开源插件plupload、stream上传插件,大小都会受到限制; web服务器在多用户情况下,如果只依靠浏览器,无论怎样搞内存都会被耗尽,现在流行各大网盘只依靠浏览器最大支持4G单文件上传,安装客户短才能支持更大文件。 3、我也是b/s结构,打算采用ftp多线程异步实现大文件上传。 如果你找到好的解决思路,希望share下。
kkrgwbj 2014-12-08
  • 打赏
  • 举报
回复
楼主怎么解决的?我也约到这个问题了!跪求指导啊!
成长之路2020 2014-11-25
  • 打赏
  • 举报
回复
请楼主,最后怎么解决。我现在遇到这样的问题
MiceRice 2014-09-23
  • 打赏
  • 举报
回复
引用 楼主 lhshbest 的回复:
超超大附件上传又不能使用FTP类服务的,要么写Flash慢慢搞,要么写ActiveX慢慢搞。 另一招就是请客户自己分卷压缩后上传。
业余草 2014-09-19
  • 打赏
  • 举报
回复
ftp是个不错的做法,建议你这么做。其他的使用多线程上传,使用指针。
windsunmoon 2014-09-19
  • 打赏
  • 举报
回复
为啥ftp被否定了? 建立个ftp服务器很简单的事情啊。 而且直接部署在和 web服务器一个 机子上。
lhshbest 2014-09-19
  • 打赏
  • 举报
回复
可是FTP被否定了。
wyx100 2014-09-19
  • 打赏
  • 举报
回复
引用 2 楼 qingyuan18 的回复:
纯粹走http协议来上传大文件肯定不行的,走ftp或者sftp是正确的方式
S117 2014-09-19
  • 打赏
  • 举报
回复
大文件的话,你要写插件了,用socket吧
qingyuan18 2014-09-19
  • 打赏
  • 举报
回复
纯粹走http协议来上传大文件肯定不行的,走ftp或者sftp是正确的方式
skyWalker_ONLY 2014-09-19
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xproer/archive/2012/05/29/2523757.html这是个支持断点续传的控件,看看能不能满足楼主的需求,但是不是知道收不收费啊

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧