JavaWeb应用中大文件的断点续传的实现
1、在实际操作中,用户上传一个大文件,有可能会遇到与服务器失去连接,这样这个文件就只上传了一部分。用户需要再次连到服务的时候再次上传,但是这时候就要断点续传
2、目前我的思路是这样的:可以在服务器端建立一个临时文件存放上传的临时文件,要是中途失去连接,下次重新上传的时候我们根据文件名在这个临时文件下面匹配,要是存在,则用RandomAccessFile去读取该不完成的临时文件,主要是获取该不完整临时文件的长度;不存在就直接上传文件,同时在服务器端生成临时文件,上传成功后再删除该临时文件(久而久之占硬盘空间)。
3、目前的问题是用哪种技术给予实现,看了网上有用Socket实现的,说http搞不定,请高人指点。
文件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>