JAVA WEB怎么实现大文件上传(上G的文件)

时间:2022-09-07 17:22:42
JAVA web怎么实现上G的文件上传。好像用Struct2对大文件支持有限。比如百度云硬盘,还要邮箱的大附件上传方式。都是用什么技术实现的,activex技术,ftp方式,还是其他什么方式

12 个解决方案

#1


解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
2)网上有一个Web大文件断点续传控件:http://www.cnblogs.com/xproer/archive/2012/02/17/2355440.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
JavaUploader免费开源的,是用applet实现的,需要签名才能在浏览器上用,支持断点。缺点是收费。
3)applet也是一种方式,MUPLOAD组件就是以APPLET方式处理的。
如果你不需要访问用户的硬盘文件,那你可以使用FTP上传,也支持断点。但只要你访问用户磁盘,又要支持断点,那必须要签名的。不然浏览器不知道你的身份。

#2


有这种重量级的需求,花钱买个商业的插件吧。

#3


引用 1 楼 ghx287524027 的回复:
解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
2)网上有一个Web大文件断点续传控件:http://www.cnblogs.com/xproer/archive/2012/02/17/2355440.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
JavaUploader免费开源的,是用applet实现的,需要签名才能在浏览器上用,支持断点。缺点是收费。
3)applet也是一种方式,MUPLOAD组件就是以APPLET方式处理的。
如果你不需要访问用户的硬盘文件,那你可以使用FTP上传,也支持断点。但只要你访问用户磁盘,又要支持断点,那必须要签名的。不然浏览器不知道你的身份。


那只能采取web插件形式了

#4


引用 2 楼 Inhibitory 的回复:
有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

#5


引用 4 楼 My_Jobs 的回复:
Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异

#6


引用 5 楼 Inhibitory 的回复:
Quote: 引用 4 楼 My_Jobs 的回复:

Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异




能大概给个方向么?

#7


引用 6 楼 My_Jobs 的回复:
Quote: 引用 5 楼 Inhibitory 的回复:

Quote: 引用 4 楼 My_Jobs 的回复:

Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异




能大概给个方向么?

能给你的方向只能是百度,Google了

#8


引用 3 楼 My_Jobs 的回复:
Quote: 引用 1 楼 ghx287524027 的回复:

解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
2)网上有一个Web大文件断点续传控件:http://www.cnblogs.com/xproer/archive/2012/02/17/2355440.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
JavaUploader免费开源的,是用applet实现的,需要签名才能在浏览器上用,支持断点。缺点是收费。
3)applet也是一种方式,MUPLOAD组件就是以APPLET方式处理的。
如果你不需要访问用户的硬盘文件,那你可以使用FTP上传,也支持断点。但只要你访问用户磁盘,又要支持断点,那必须要签名的。不然浏览器不知道你的身份。


那只能采取web插件形式了


上面说的那几个工具都支持大文件传输的,1g应该不是问题

#9


引用 7 楼 Inhibitory 的回复:
Quote: 引用 6 楼 My_Jobs 的回复:

Quote: 引用 5 楼 Inhibitory 的回复:

Quote: 引用 4 楼 My_Jobs 的回复:

Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异


能大概给个方向么?

能给你的方向只能是百度,Google了



那这论坛的意义何在?

#10


就这样就沉了。。。

#11


自己开发达不到那么好的效率。

#12


上传协议还可以使用HTTP,不过需要使用分割上传后台组装的思想。
1.进行前台使用Flash插件进行分割上传,也就是把每次上传的数据限制在50M或者100M以内,同时把文件名称、分包数量,当前包索引值等参数和分包数据按照顺序传到后台。
2.后台上传方法读取分包数量及当前包的索引定位到该数据所在文件的位置,并把输入write到正确位置,当所有包上传成功即可组合所有文件。

#1


解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
2)网上有一个Web大文件断点续传控件:http://www.cnblogs.com/xproer/archive/2012/02/17/2355440.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
JavaUploader免费开源的,是用applet实现的,需要签名才能在浏览器上用,支持断点。缺点是收费。
3)applet也是一种方式,MUPLOAD组件就是以APPLET方式处理的。
如果你不需要访问用户的硬盘文件,那你可以使用FTP上传,也支持断点。但只要你访问用户磁盘,又要支持断点,那必须要签名的。不然浏览器不知道你的身份。

#2


有这种重量级的需求,花钱买个商业的插件吧。

#3


引用 1 楼 ghx287524027 的回复:
解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
2)网上有一个Web大文件断点续传控件:http://www.cnblogs.com/xproer/archive/2012/02/17/2355440.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
JavaUploader免费开源的,是用applet实现的,需要签名才能在浏览器上用,支持断点。缺点是收费。
3)applet也是一种方式,MUPLOAD组件就是以APPLET方式处理的。
如果你不需要访问用户的硬盘文件,那你可以使用FTP上传,也支持断点。但只要你访问用户磁盘,又要支持断点,那必须要签名的。不然浏览器不知道你的身份。


那只能采取web插件形式了

#4


引用 2 楼 Inhibitory 的回复:
有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

#5


引用 4 楼 My_Jobs 的回复:
Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异

#6


引用 5 楼 Inhibitory 的回复:
Quote: 引用 4 楼 My_Jobs 的回复:

Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异




能大概给个方向么?

#7


引用 6 楼 My_Jobs 的回复:
Quote: 引用 5 楼 Inhibitory 的回复:

Quote: 引用 4 楼 My_Jobs 的回复:

Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异




能大概给个方向么?

能给你的方向只能是百度,Google了

#8


引用 3 楼 My_Jobs 的回复:
Quote: 引用 1 楼 ghx287524027 的回复:

解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。
1)开发一个web插件。用于上传文件。
2)开发一个FTP工具,不用web上传。
3)用现有的FTP工具。
下面是几款不错的插件,你可以试试:
1)Jquery的uploadify插件。具体使用。你可以看帮助文档。
2)网上有一个Web大文件断点续传控件:http://www.cnblogs.com/xproer/archive/2012/02/17/2355440.html
此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
JavaUploader免费开源的,是用applet实现的,需要签名才能在浏览器上用,支持断点。缺点是收费。
3)applet也是一种方式,MUPLOAD组件就是以APPLET方式处理的。
如果你不需要访问用户的硬盘文件,那你可以使用FTP上传,也支持断点。但只要你访问用户磁盘,又要支持断点,那必须要签名的。不然浏览器不知道你的身份。


那只能采取web插件形式了


上面说的那几个工具都支持大文件传输的,1g应该不是问题

#9


引用 7 楼 Inhibitory 的回复:
Quote: 引用 6 楼 My_Jobs 的回复:

Quote: 引用 5 楼 Inhibitory 的回复:

Quote: 引用 4 楼 My_Jobs 的回复:

Quote: 引用 2 楼 Inhibitory 的回复:

有这种重量级的需求,花钱买个商业的插件吧。


那要是想自己开发呢?很难实现?

程序都是人写的,这个取决于你的对这方面的了解程度,有的人写很简单,有的人就很难,因人而异


能大概给个方向么?

能给你的方向只能是百度,Google了



那这论坛的意义何在?

#10


就这样就沉了。。。

#11


自己开发达不到那么好的效率。

#12


上传协议还可以使用HTTP,不过需要使用分割上传后台组装的思想。
1.进行前台使用Flash插件进行分割上传,也就是把每次上传的数据限制在50M或者100M以内,同时把文件名称、分包数量,当前包索引值等参数和分包数据按照顺序传到后台。
2.后台上传方法读取分包数量及当前包的索引定位到该数据所在文件的位置,并把输入write到正确位置,当所有包上传成功即可组合所有文件。