最近做一个系统需要上传超大文件(单个文件有1,2G),大家有木有好的解决方案?

sinat_33355989 2015-12-24 10:40:26
如题,最近在做一个文件上传的问题遇到了一个难题,用户上传文件有时会超过1,2G以前遇到的都是几兆,十几兆而已的文件,这么大的文件没做过,不知道大家有木有啥好的方案?
...全文
1221 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜鹰教程网 2018-03-16
  • 打赏
  • 举报
回复



多文件上传,大文件上传,分块上传,断点续传,文件秒传,上传失败自动修复再上传等功能,只要你按照课程中讲解的做,上传3、5个G,那都不是事。特别是大文件秒传功能,不仅节省了上传时间,还节省了网络带宽和服务器空间,采用md5加密标识文件唯一性,避免了同一文件的重复上传,上传过程带进度条,即时显示上载数据量和上载百分比。如果不清楚原理,加Q:1416759661 远程协助。
sinat_33355989 2015-12-29
  • 打赏
  • 举报
回复
引用 6 楼 bxuzuning 的回复:
[quote=引用 1 楼 shuijun1 的回复:] 大型文件的上传和我们平时遇到的小文件的上传实现的方式是不一样的,你可以参考一下这篇文章:如何解决上传大文件时(批量上传文件)系统卡死宕机的问题 对你或许会有一些启发
传统方式都很难解决这个问题。因为需要考虑用户数,不是一个用户上传。同时可能有很多个用户上传。用普通方式,基本上内存会被占满。一般解决方案都是对文件分块上传。网上也有成熟的产品,楼主可以搜一下。 像腾迅他们都是用的分块上传。[/quote]嗯,你讲的貌似比较专业,赞
  • 打赏
  • 举报
回复
来学习一下 楼主的结贴率……呵呵
sinat_33355989 2015-12-29
  • 打赏
  • 举报
回复
引用 8 楼 u011376884 的回复:
来学习一下 楼主的结贴率……呵呵
就这么点分,当然要给最有价值球员咯
bxuzuning 2015-12-25
  • 打赏
  • 举报
回复
引用 1 楼 shuijun1 的回复:
大型文件的上传和我们平时遇到的小文件的上传实现的方式是不一样的,你可以参考一下这篇文章:如何解决上传大文件时(批量上传文件)系统卡死宕机的问题 对你或许会有一些启发
传统方式都很难解决这个问题。因为需要考虑用户数,不是一个用户上传。同时可能有很多个用户上传。用普通方式,基本上内存会被占满。一般解决方案都是对文件分块上传。网上也有成熟的产品,楼主可以搜一下。 像腾迅他们都是用的分块上传。
bqiume 2015-12-25
  • 打赏
  • 举报
回复
引用 4 楼 bmengianba 的回复:
Xproer.HttpUploader6:http://url.cn/THJaUJ 它可以上传文件夹(包含层级结构),上传超大文件,文件MD5验证,支持断点续传,支持WINDOWS平台下的主流浏览器:IE 6(x86),IE 7(x86),IE 8(x86),IE 9(x86,x64),IE 10(x86,x64),IE 11(x86,x64), Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器,360极速浏览器,搜狗浏览器,Firefox,Chrome,Opera 23。 页面调用示例代码:

<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>HttpUploader6演示页面</title>
    <link type="text/css" href="css/HttpUploader.css" rel="Stylesheet"/>
    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="js/HttpUploader.js" charset="utf-8"></script>
    <script language="javascript" type="text/javascript">
        var cbMgr = new HttpUploaderMgr();
    $(document).ready(function ()
    {
         cbMgr.LoadTo("FilePanel");
         cbMgr.SetupCheck(); //安装检查
 
              //取MAC地址
         //var mac = cbMgr.Browser.GetMacs();
         //alert(mac[0]);
 
         //上传指定目录下的所有文件
        //cbMgr.Browser.GetFiles("F:\\ftp\\", false);
    });
    </script>
</head>
<body>
    <div id="msg"></div>
     <div id="FilePanel"></div>
</body>
</html>
资源下载: cab安装包(x86) cab安装包(x64) crx安装包 xpi插件安装包 exe安装包 开发文档 升级日志 ASP.NET示例 JSP-ACCESS示例 JSP-SQL2005示例 JSP-MySQL示例 JSP-Oracle示例 PHP-MySQL示例
引用 4 楼 bmengianba 的回复:
[quote=引用 楼主 sinat_33355989 的回复:] 如题,最近在做一个文件上传的问题遇到了一个难题,用户上传文件有时会超过1,2G以前遇到的都是几兆,十几兆而已的文件,这么大的文件没做过,不知道大家有木有啥好的方案?
网上有一个Web大文件上传控件:http://url.cn/THJaUJ 它可以上传文件夹(包含层级结构),上传超大文件,文件MD5验证,支持断点续传,支持WINDOWS平台下的主流浏览器:IE 6(x86),IE 7(x86),IE 8(x86),IE 9(x86,x64),IE 10(x86,x64),IE 11(x86,x64), Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器,360极速浏览器,搜狗浏览器,Firefox,Chrome,Opera 23。 上传文件夹: 粘贴文件,简化选择文件操作: 文件MD5值计算进度: 文件MD5值计算完毕 服务器根据MD5检测是否存在相同文件 续传文件 从服务器加载文件列表 文件上传中 文件上传完毕 上传文件夹 与Discuz!X2整合-后台安装断点续传控件 与Discuz!X2整合-后台启用断点续传控件 与Discuz!X2整合-后台断点续传控件启用成功 与Discuz!X2整合-前台发帖页面 与Discuz!X2整合-上传 文件夹上传,本地文件夹层级结构 服务器上的文件夹层级结构 页面调用示例代码:

<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>HttpUploader6演示页面</title>
    <link type="text/css" href="css/HttpUploader.css" rel="Stylesheet"/>
    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="js/HttpUploader.js" charset="utf-8"></script>
    <script language="javascript" type="text/javascript">
        var cbMgr = new HttpUploaderMgr();
    $(document).ready(function ()
    {
         cbMgr.LoadTo("FilePanel");
         cbMgr.SetupCheck(); //安装检查
 
              //取MAC地址
         //var mac = cbMgr.Browser.GetMacs();
         //alert(mac[0]);
 
         //上传指定目录下的所有文件
        //cbMgr.Browser.GetFiles("F:\\ftp\\", false);
    });
    </script>
</head>
<body>
    <div id="msg"></div>
     <div id="FilePanel"></div>
</body>
</html>
资源下载: cab安装包(x86) cab安装包(x64) crx安装包 xpi插件安装包 exe安装包 开发文档 升级日志 ASP.NET示例 JSP-ACCESS示例 JSP-SQL2005示例 JSP-MySQL示例 JSP-Oracle示例 PHP-MySQL示例 [/quote]不错,最近做一个政府OA办公系统也是要用到大文件上传功能,在网上找了几天没找到好的解决方案,虽然也有Flash,html5的,但是政府现在有有IE8的浏览器需要兼容,chrome的用的不多,政府办公人员都用不好。另外一点开源的东西技术支持做的不好,有时遇到问题需要马上解决,结果联系作者联系不上。
bmengianba 2015-12-25
  • 打赏
  • 举报
回复
引用 楼主 sinat_33355989 的回复:
如题,最近在做一个文件上传的问题遇到了一个难题,用户上传文件有时会超过1,2G以前遇到的都是几兆,十几兆而已的文件,这么大的文件没做过,不知道大家有木有啥好的方案?
网上有一个Web大文件上传控件:http://url.cn/THJaUJ 它可以上传文件夹(包含层级结构),上传超大文件,文件MD5验证,支持断点续传,支持WINDOWS平台下的主流浏览器:IE 6(x86),IE 7(x86),IE 8(x86),IE 9(x86,x64),IE 10(x86,x64),IE 11(x86,x64), Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器,360极速浏览器,搜狗浏览器,Firefox,Chrome,Opera 23。 上传文件夹: 粘贴文件,简化选择文件操作: 文件MD5值计算进度: 文件MD5值计算完毕 服务器根据MD5检测是否存在相同文件 续传文件 从服务器加载文件列表 文件上传中 文件上传完毕 上传文件夹 与Discuz!X2整合-后台安装断点续传控件 与Discuz!X2整合-后台启用断点续传控件 与Discuz!X2整合-后台断点续传控件启用成功 与Discuz!X2整合-前台发帖页面 与Discuz!X2整合-上传 文件夹上传,本地文件夹层级结构 服务器上的文件夹层级结构 页面调用示例代码:

<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>HttpUploader6演示页面</title>
    <link type="text/css" href="css/HttpUploader.css" rel="Stylesheet"/>
    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="js/HttpUploader.js" charset="utf-8"></script>
    <script language="javascript" type="text/javascript">
        var cbMgr = new HttpUploaderMgr();
    $(document).ready(function ()
    {
         cbMgr.LoadTo("FilePanel");
         cbMgr.SetupCheck(); //安装检查
 
              //取MAC地址
         //var mac = cbMgr.Browser.GetMacs();
         //alert(mac[0]);
 
         //上传指定目录下的所有文件
        //cbMgr.Browser.GetFiles("F:\\ftp\\", false);
    });
    </script>
</head>
<body>
    <div id="msg"></div>
     <div id="FilePanel"></div>
</body>
</html>
资源下载: cab安装包(x86) cab安装包(x64) crx安装包 xpi插件安装包 exe安装包 开发文档 升级日志 ASP.NET示例 JSP-ACCESS示例 JSP-SQL2005示例 JSP-MySQL示例 JSP-Oracle示例 PHP-MySQL示例
activexme 2015-12-25
  • 打赏
  • 举报
回复
引用 楼主 sinat_33355989 的回复:
如题,最近在做一个文件上传的问题遇到了一个难题,用户上传文件有时会超过1,2G以前遇到的都是几兆,十几兆而已的文件,这么大的文件没做过,不知道大家有木有啥好的方案?
建议用控件,普通的HTML,JAVA,JSP,PHP都是无法解决这个问题。用户数一多,服务器的内存就会被占满。像QQ邮箱,百度网盘,360网盘都是用的控件来实现的。
sinat_33355989 2015-12-24
  • 打赏
  • 举报
回复
引用 1 楼 shuijun1 的回复:
大型文件的上传和我们平时遇到的小文件的上传实现的方式是不一样的,你可以参考一下这篇文章:如何解决上传大文件时(批量上传文件)系统卡死宕机的问题 对你或许会有一些启发
3Q
落寞红尘 2015-12-24
  • 打赏
  • 举报
回复
大型文件的上传和我们平时遇到的小文件的上传实现的方式是不一样的,你可以参考一下这篇文章:如何解决上传大文件时(批量上传文件)系统卡死宕机的问题 对你或许会有一些启发

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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