一种网页文件的上传方法及其系统 【技术领域】
本发明涉及一种计算机领域, 特别是涉及一种网页文件上传到服务器的方法及其系统。 背景技术 目前, 通过网页上传文件, 普遍采用的方式是提交 http 请求到后台 web 服务器, 这 种方案存在以下缺点 :
1) 因为缺少断点续传机制, 在文件比较大的时候, 上传时间比较长, 一旦网络中断 就要重新上传文件 ;
2) 通常上传文件时间较长, 这样导致 web 服务器要长时间与客户端网页保持连 接, 这样就占用了 web 服务器的连接数, 影响 web 服务器的性能。
所以, 需要提供一种新的网页文件上传技术, 解决现有技术中上传不支持断点续 传功能且上传文件消耗 Web 服务器性能的缺点, 使得在上传文件遇到网络中断再次上传 时, 可以从上次进度继续上传, 同时不影响 Web 服务器性能。
发明内容 本发明的目的在于提供一种 SilverLight 网页文件的上传方法及其系统, 可以解 决现有技术中上传不支持断点续传功能且上传文件消耗 Web 服务器性能的缺点, 使得在上 传文件遇到网络中断再次上传时, 可以从上次进度继续上传, 同时不影响 Web 服务器性能。
为解决以上技术问题, 本发明提供一种 SilverLight 网页文件的上传系统, 包括 : 网页浏览器, web 服务器, 上传服务器,
所述网页浏览器, 用于展示上传网页, 以及利用 SilverLight 上传控件实现与上 传服务器通讯上传文件 ;
所述 web 服务器, 用于响应网页浏览器的 http 请求, 向网页浏览器输出网页内 容;
所述上传服务器, 用于提供 Socket 服务, 响应 SilverLight 上传控件 socket 请 求, 保存从上传控件传输过来的文件内容及文件传输的进度信息。
进一步地, 所述 SilverLight 上传控件, 具体用于 : 提取选择本地文件, 得出文件 摘要描述, 并将文件摘要描述传送给上传服务器 ; 以及, 从上传服务器获得上次传输进度, 从指定位置获取一定大小文件内容上传到上传服务器。
进一步地, 所述上传服务器, 具体用于 : 根据文件摘要描述检索上传进度并回传给 SilverLight 上传控件 ; 以及, 保存接收 SilverLight 上传控件上传的文件内容和上传进 度。
进一步地, 所述上传服务器以摘要描述为关键字保存或查询上传进度信息。
为解决以上技术问题, 本发明还提供一种 SilverLight 网页文件的上传方法, 包 括:
步骤 1、 网页浏览器请求 Web 服务器获取上传网页 ;
步骤 2、 Web 服务器响应请求向返回上传 HTML 页面 ;
步骤 3、 SilverLight 上传控件提取选择的本地文件计算出文件摘要描述, 将文件 摘要描述传送给上传服务器 ;
步骤 4、 上传服务器用文件摘要描述检索上传进度并回传给上传控件 ;
步骤 5、 SilverLight 上传控件获得上次传输进度后, 从指定位置获取一定大小文 件内容上传到上传服务器 ;
步骤 6、 上传服务器保存接收到文件内容和上传进度 ;
重复步骤 4 至步骤 6 的传输过程, 直到文件全部传输完成。
进一步地, 所述上传服务器以摘要描述为关键字保存或查询上传进度信息。
与现有技术相比, 本发明提供的一种 SilverLight 网页文件的上传方法及其系 统, 针对现有通过 http 请求上传文件方法存在的缺点, 通过在网页中嵌入 SilverLight 插 件以 socket 与专门的上传服务器交互 ; 上传时实时记录传输进度支持断点续传, 提高上传 工作效率 ; 传输过程采用 socket 连接到专用上传服务器, 上传过程不会影响 web 服务器性 能。所以, 上传服务器在文件数据上传时, 可以实时保存文件上传进度信息, 最终实现断点 续传功能 ; 上传过程只有专用服务器交互, 不影响 Web 服务器性能。 附图说明
此处所说明的附图用来提供对本发明的进一步理解, 构成本发明的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。在附图中 :
图 1 是本发明提供的一种 SilverLight 网页文件的上传系统的结构图 ;
图 2 是本发明提供的一种 SilverLight 网页文件的上传方法的流程图。 具体实施方式
为了使本发明所要解决的技术问题、 技术方案及有益效果更加清楚、 明白, 以下结 合附图和实施例, 对本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅用 以解释本发明, 并不用于限定本发明。
本 发 明 提 供 一 种 通 过 SilverLight 网 页 上 传 文 件 到 服 务 器 的 技 术, 将 SilverLight 上传控件嵌入到网页中, 通过 Socket 与服务器通讯, 上传文件到服务器。 SilverLight 是微软推出的跨浏览器、 跨客户平台的网页插件式技术, 可以提供了丰富的本 地文件操作功能, Socket 通讯功能。Socket 通常也称作 “套接字” , 应用程序可通过 “套接 字” 向网络发出请求或者应答网络请求。
如图 1 所示, 本发明提供一种 SilverLight 网页文件的上传系统, 包括 : 网页浏览 器 10, web 服务器 20, 上传服务器 30,
该网页浏览器 10, 用于展示上传网页, 上传网页包括 Html 页面 12 和 SilverLight 上传控件 14, SilverLight 上传控件 14 可实现与上传服务器 30 通讯上传文件。
该 web 服务器 20, 用于负责响应网页浏览器 10 的 http 请求, 向网页浏览器 10 输 出网页内容。
该上传服务器 30, 用于提供 Socket 服务, 响应 SilverLight 上传控件 socket 请求, 负责保存从上传控件传输过来的文件内容, 同时负责保存文件传输的进度信息。
本发明提供一种 SilverLight 网页文件的上传方法, 包括 :
步骤 1、 网页浏览器 10 请求 Web 服务器 20 获取上传网页, 使用 SilverLight 上传 控件 14 选择本地文件进行上传操作。
步骤 2、 Web 服务器响应请求向返回上传 HTML 页面。
步骤 3、 SilverLight 上传控件 14 提取选择的本地文件计算出文件摘要描述, 将文 件摘要描述传送给上传服务器 30。
步骤 4、 上传服务器 30 用文件摘要描述检索上传进度并回传给上传控件 14。
步骤 5、 SilverLight 上传控件 14 获得上次传输进度后, 从指定位置获取一定大小 文件内容上传到上传服务器 30。
步骤 6、 上传服务器 30 保存接收到文件内容和上传进度。
重复步骤 4 至步骤 6 的传输过程, 直到文件全部传输完成。
详细的 SilverLight 网页文件的上传方法如下所述 ( 如图 2 所示 ) :
第一步、 用户通过网页浏览器输入上传页面链接地址, 向 Web 服务器发起请求, Web 服务器响应请求向返回上传 HTML 页面。 第二步、 在上传 HTML 页面中用户通过 SilverLight 上传控件选择本机文件, 执行 上传操作。
第三步、 SilverLight 上传控件抽样提取本机文件内容, 生成文件摘要描述, 并将 摘要描述使用 Socket 连接发送到上传服务器。
第四步、 上传服务器接收用摘要描述, 并以摘要描述为关键字查询上传进度信息, 同时通过 socket 连接回传进度信息给上传控件。
第五步、 上传控件接收服务器回传的进度信息, 根据进度信息, 把文件指针定位初 始指定的传输文件位置。
第六步、 判断文件位置是否到达文件末尾, 如果是表明文件已经上传完成, 跳转到 第十步 ; 否则, 跳转到第七步。
第七步、 上传控件从文件当前位置, 读取固定大小的文件内容数据传输, 并上传服 务器。
第八步、 上传服务器接收上传控件上传的文件内容数据, 并保存到服务器对应的 文件中。
第九步、 服务器以文件摘要描述作为关键字, 保存本次上传的进度信息 ; 返回第六 步。
第十步、 断开服务器和 SilverLight 上传控件之间 Socket 连接, 结束此次文件上 传请求。
本发明提供的一种 SilverLight 网页文件的上传方法及其系统, 针对现有通过 http 请求上传文件方法存在的缺点, 通过在网页中嵌入 SilverLight 插件以 socket 与专门 的上传服务器交互 ; 上传时实时记录传输进度支持断点续传, 提高上传工作效率 ; 传输过 程采用 socket 连接到专用上传服务器, 上传过程不会影响 web 服务器性能。所以, 上传服 务器在文件数据上传时, 可以实时保存文件上传进度信息, 最终实现断点续传功能 ; 上传过 程只有专用服务器交互, 不影响 Web 服务器性能。
上述说明示出并描述了本发明的一个优选实施例, 但如前所述, 应当理解本发明 并非局限于本文所披露的形式, 不应看作是对其他实施例的排除, 而可用于各种其他组合、 修改和环境, 并能够在本文所述发明构想范围内, 通过上述教导或相关领域的技术或知识 进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围, 则都应在本发 明所附权利要求的保护范围内。