【摘要】 本发明涉及一种基于RFC1867规范的HTTP协议的文件上传方法,该方法基于 UGiA-PHP-UPLOADER组件的系统架构,实现客户端进度控制、服务器端数据接收、 按照RFC1867协议的即时解析和状态日志读取,包括:(1)浏览器提交的步骤;(2) 客户控制端控制的步骤;(3)服务器端数据接收处理模块处理的步骤;(4)服务器 端响应模块响应的步骤。其优点在于:(1)脱离了Web服务器对表单上传的控制, 摆脱了其对文件长度和传输时间的限制;同时不需要额外的插件就能完成文件的上 传;(2)计算效率高,并保证对文件夹的均衡分配;(3)支持文件上传进度显示的 同时具有良好的可扩展性和可移植性;(4)避免了传输结束再处理时需要对整个文 件读取造成的时间和资源的浪费。 【专利类型】发明申请 【申请人】中国科学院声学研究所 【申请人类型】科研单位 【申请人地址】100190北京市海淀区北四环西路21号中国科学院声学研究所 【申请人地区】中国 【申请人城市】北京市 【申请人区县】海淀区 【申请号】CN200810119142.4 【申请日】2008-08-28 【申请年份】2008 【公开公告号】CN101662484A 【公开公告日】2010-03-03 【公开公告年份】2010 【授权公告号】CN101662484B 【授权公告日】2012-07-25 【授权公告年份】2012.0 【IPC分类号】H04L29/08 【发明人】王劲林; 白鹤; 苏孝强 【主权项内容】1、一种基于RFC1867规范的HTTP协议的文件上传方法,该方法基于 UGiA-PHP-UPLOADER组件的系统架构,实现客户端进度控制、服务器端数据接收、 按照RFC1867协议的即时解析和状态日志读取,包括以下步骤: (1)浏览器提交的步骤,是指通过浏览器填写基于RFC1867规范、属性设置 为“multipart/form-data”的表单,然后提交到客户控制端; (2)客户控制端控制的步骤,是指客户控制端向服务器端上传表单数据并与服 务器端通信,包括: (21)启动定时器,并初始化XMLHTTP的实例,设置GET方法定时发送异步 请求到服务响应端轮询状态,得到端口号信息Port,代表服务端已做好接收数据准 备;取得父页面表单对象,设置“action”属性为“http : //IP : Port”,即设置Port为新上传 端口,开始文件的表单数据的上传;同时,初始化进度条页面:设置抬头信息“开始 上传”,显示服务器端口; (22)客户控制端接到数据传送完成信号,重组表单的数据项,将file控件替换 成值为接收文件存放位置的text控件,然后通过HTTP向服务器端提交表单;所述 完成信号是包含表单数据的数组数据; (3)服务器端数据接收处理模块处理的步骤,是指服务器端数据接收处理模块 监听Port端口,接收、解析表单数据,储存数据文件和状态文件,包括以下步骤: (31)数据接收处理模块采用32位随机数对上传表单命名,然后确定临时文件 存储文件夹的个数P,采用哈希函数对文件进行均匀分配; (32)服务器端初始化新上传端口Port,将服务器端的IP地址和Port端口信息 写入状态文件,实例化Socket对象并监听新上传端口Port,表单数据从Port端口传 入并由服务器端数据处理模块的UGiA-PHP-UPLOADER组件接收处理; (33)遵照HTTP协议编写200的响应头,将响应头回复给Port请求端口的客 户端,随后按照一定字节长度循环读取Socket数据流,将读取数据作为一个单元压 入到一定长度的字符队列; (4)服务器端响应模块响应的步骤,是指服务器端读取状态日志、组织文件信 息和进度数据、回复客户端请求。。 【当前权利人】中国科学院声学研究所 【当前专利权人地址】北京市海淀区北四环西路21号中国科学院声学研究所 【统一社会信用代码】12100000400883447M 【被引证次数】22 【被他引次数】22.0 【家族引证次数】2.0 【家族被引证次数】22