JavaWeb应用中大文件的断点续传的实现

oyxccyj 2013-07-17 09:09:40
1、在实际操作中,用户上传一个大文件,有可能会遇到与服务器失去连接,这样这个文件就只上传了一部分。用户需要再次连到服务的时候再次上传,但是这时候就要断点续传
2、目前我的思路是这样的:可以在服务器端建立一个临时文件存放上传的临时文件,要是中途失去连接,下次重新上传的时候我们根据文件名在这个临时文件下面匹配,要是存在,则用RandomAccessFile去读取该不完成的临时文件,主要是获取该不完整临时文件的长度;不存在就直接上传文件,同时在服务器端生成临时文件,上传成功后再删除该临时文件(久而久之占硬盘空间)。
3、目前的问题是用哪种技术给予实现,看了网上有用Socket实现的,说http搞不定,请高人指点。
...全文
150 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwiin6u3x 2013-07-17
  • 打赏
  • 举报
回复
引用 2 楼 lvNotOnlyForShe 的回复:
Xproer.HttpUploader5:http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html 此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。 支持浏览器:Internet Explorer 6,Internet Explorer 7,Internet Explorer 8,Internet Explorer 9 Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器, Chrome(Google浏览器),Maxthon3.x,360极速浏览器6.x,Firefox 页面调用示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>
    <link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>
    <script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>
    <script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>
    <script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>
    <script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>
    <script language="javascript" type="text/javascript">
    	var cbItemLast = null;
    	var cbMgr = new CombinBoxMgr();

    	$(document).ready(function()
    	{
    		cbMgr.LoadInControl("FilePanel");
    		cbMgr.Init();
    	});
    </script>
</head>
<body>
	<div id="FilePanel"></div>
</body>
</html>
资源下载: cab安装包(x86) cab安装包(x64) crx安装包 xpi安装包 exe安装包 开发文档 升级日志 ASP.NET(C#)示例代码: ASP.NET-ACCESS示例 ASP.NET-SQL2005示例 JSP示例代码: JSP-ACCESS-GB2312示例 JSP-ACCESS-UTF8示例 JSP-SqlServer2005-UTF8示例 JSP-MySQL-UTF8示例 PHP示例代码: PHP-MySQL-UTF8示例 Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE32,IE64,Firefox,Chrome平台的插件) ASP.NET-ACCESS示例 ASP.NET-SQL2005示例 JSP示例代码: JSP-ACCESS-GB2312示例 JSP-ACCESS-UTF8示例 JSP-SqlServer2005-UTF8示例 JSP-MySQL-UTF8示例 PHP示例代码: PHP-MySQL-UTF8示例 Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE(x86),IE(x64),Firefox,Chrome平台的插件) ASP.NET-ACCESS示例 ASP.NET-SQL2005示例 JSP-ACCESS-GB2312示例 JSP-ACCESS-UTF8示例 JSP-SQL2005-UTF8示例 JSP-MySQL-UTF8示例 PHP-MySQL-UTF8示例
好东西,收下了,谢谢。 最近一直在找类似的控件。刚接了一个视频网站的单子,客户提了这个需求。还没找到解决方法。
lvNotOnlyForShe 2013-07-17
  • 打赏
  • 举报
回复
引用 楼主 oyxccyj 的回复:
1、在实际操作中,用户上传一个大文件,有可能会遇到与服务器失去连接,这样这个文件就只上传了一部分。用户需要再次连到服务的时候再次上传,但是这时候就要断点续传 2、目前我的思路是这样的:可以在服务器端建立一个临时文件存放上传的临时文件,要是中途失去连接,下次重新上传的时候我们根据文件名在这个临时文件下面匹配,要是存在,则用RandomAccessFile去读取该不完成的临时文件,主要是获取该不完整临时文件的长度;不存在就直接上传文件,同时在服务器端生成临时文件,上传成功后再删除该临时文件(久而久之占硬盘空间)。 3、目前的问题是用哪种技术给予实现,看了网上有用Socket实现的,说http搞不定,请高人指点。
网上有一个Web超大文件上传断点续传控件:http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html 此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。 支持浏览器:Internet Explorer 6,Internet Explorer 7,Internet Explorer 8,Internet Explorer 9 Maxthon(遨游)1.x,Maxthon(遨游)2.x,TT浏览器,QQ浏览器,360安全浏览器, Chrome(Google浏览器),Maxthon3.x,360极速浏览器6.x,Firefox 粘贴文件,简化选择文件操作: 文件MD5值计算进度: 文件MD5值计算完毕 服务器根据MD5检测是否存在相同文件 续传文件 从服务器加载文件列表 文件上传中 文件上传完毕 上传文件夹 与Discuz!X2整合-后台安装断点续传控件 与Discuz!X2整合-后台启用断点续传控件 与Discuz!X2整合-后台断点续传控件启用成功 与Discuz!X2整合-前台发帖页面 与Discuz!X2整合-上传 页面调用示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>HTTP断点续传控件与MySQL数据库演示页面(UTF-8)</title>
    <link href="HttpUploader/HttpUploader.css" type="text/css" rel="Stylesheet"/>
    <script type="text/javascript" charset="utf-8" src="HttpUploader/FileLister.js"></script>
    <script type="text/javascript" charset="utf-8" src="HttpUploader/HttpUploader.js"></script>
    <script type="text/javascript" charset="utf-8" src="HttpUploader/combinbox.js"></script>
    <script type="text/javascript" src="HttpUploader/jquery-1.3.2.min.js"></script>
    <script language="javascript" type="text/javascript">
    	var cbItemLast = null;
    	var cbMgr = new CombinBoxMgr();

    	$(document).ready(function()
    	{
    		cbMgr.LoadInControl("FilePanel");
    		cbMgr.Init();
    	});
    </script>
</head>
<body>
	<div id="FilePanel"></div>
</body>
</html>
资源下载: cab安装包(x86) cab安装包(x64) crx安装包 xpi安装包 exe安装包 开发文档 升级日志 ASP.NET(C#)示例代码: ASP.NET-ACCESS示例 ASP.NET-SQL2005示例 JSP示例代码: JSP-ACCESS-GB2312示例 JSP-ACCESS-UTF8示例 JSP-SqlServer2005-UTF8示例 JSP-MySQL-UTF8示例 PHP示例代码: PHP-MySQL-UTF8示例 Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE32,IE64,Firefox,Chrome平台的插件) ASP.NET-ACCESS示例 ASP.NET-SQL2005示例 JSP示例代码: JSP-ACCESS-GB2312示例 JSP-ACCESS-UTF8示例 JSP-SqlServer2005-UTF8示例 JSP-MySQL-UTF8示例 PHP示例代码: PHP-MySQL-UTF8示例 Chrome,Firefox,IE断点续传控件示例(以下示例已整合IE(x86),IE(x64),Firefox,Chrome平台的插件) ASP.NET-ACCESS示例 ASP.NET-SQL2005示例 JSP-ACCESS-GB2312示例 JSP-ACCESS-UTF8示例 JSP-SQL2005-UTF8示例 JSP-MySQL-UTF8示例 PHP-MySQL-UTF8示例
  • 打赏
  • 举报
回复
帮你顶一下吧,附带告诉你,50分问这样的问题,缺乏点诚意,怪不得没人回答了。

5,655

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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