[发明专利]一种上传大文件的方法在审
| 申请号: | 201410015196.1 | 申请日: | 2014-01-14 |
| 公开(公告)号: | CN103701937A | 公开(公告)日: | 2014-04-02 |
| 发明(设计)人: | 管建智 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08 |
| 代理公司: | 上海信好专利代理事务所(普通合伙) 31249 | 代理人: | 张妍;张静洁 |
| 地址: | 201620 上海市松*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 上传 文件 方法 | ||
技术领域
本发明涉及一种上传大文件的方法,尤其涉及一种在WEBDAV服务器上实现上传大文件的方法。
背景技术
WEBDAV(Web-based Distributed Authoring and Versioning)是一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web 服务器直接读写,并支持写文件锁定及解锁,还可以支持文件的版本控制。
WEBDAV作为一种文件共享的方案,已经在网关设备的某些开源方案(openwrt)上开始应用。典型的应用场景为:网关设备上部署WEBDAV服务器,将外接的存储设备(移动硬盘)作为存储介质,PC(个人电脑)、手机等终端通过客户端或映射网络驱动器的方法,可以下载或上传文件,在用映射网络驱动器的方法连接时可以直接修改服务器上的文件。
Lighttpd(lighttpd是一个用C语言实现的轻量级的http服务器,HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是目前网页传输的通用协议)是个框架,在这个框架下可以同时做多种服务,比如:建立一个WEBDAV的服务器用于共享文件,同时建立一个WEB服务器,用于管理网关设备,也可以再建立一个WEB服务器做BBS。
在网关设备上可以用http服务器加载WEBDAV模块的方式实现WEBDAV服务器。但在实际使用中,WEBDAV服务器不能上传较大的文件,32M内存的设备一般不能上传大于20M的文件。
http服务器处理上传文件请求的步骤如下:
1、先从socket(网络套接字)中接收http header(http header是http报文的头部。可以将http报文当成是一个连续的字符串,该字符串可以分为两部分:头部(字符串前面的一部分,长度不定)和内容(剩余的部分)。头部包含一些协议描述和控制的信息,内容部分是http协议需要传送的内容),根据上传请求的内容长度(Content-Length)字段的值获得接收文件的大小;
步骤2、对于小于等于64K的文件,直接分配一个内存缓存(buffer)来接收;对于大于64K小于等于1M的文件,在tmpfs(临时文件系统,是一种基于内存的文件系统,它只存在于内存中)中建立一个临时文件来存储;对于大于1M的文件,将文件分成以1M为单位的临时文件存储在临时文件中,并用链表将这些临时文件的信息保存起来;
步骤3、文件接收完成后,交给WEBDAV模块处理,WEBDAV模块将接收到的文件写入对应的外部存储介质中。
网关设备的剩余内存一般不会小于1M,所以对于1M左右的文件,一般都可以上传。但当文件很大时,由于临时文件都是存储在物理内存中的,所以当上传文件的大小大于系统剩余物理内存时,lighttpd最终会因内存不够而放弃接收该文件,导致上传失败。
现有的上传文件方案对上传文件的大小有限制,这是由原始设计的上传机制决定的,上传文件大小的上限为当前系统中剩余物理内存的大小。这就给实际应用带来了不便,尤其是无法上传视频文件。
目前业界还没有对应的解决方案。
发明内容
本发明提供一种上传大文件的方法,不受系统实际剩余物理内存的限制,实现对大文件的支持。
为了达到上述目的,本发明提供一种上传大文件的方法,该方法用于WEBDAV服务器,该方法包含以下步骤:
步骤S1、如果http服务器接收到WEBDAV服务器的上传请求,则判断上传文件的大小;
步骤S2、如果上传文件的大小超过1M,WEBDAV模块直接使用外部存储设备接收并储存上传文件。
所述的步骤S1中,http服务器根据接收到的http报文头部,判断是否是WEBDAV服务器的上传请求,如果是,就将在http连接上下文中扩充的标识变量赋值为真,表示http服务器要处理WEBDAV服务器的上传服务,如果不是,则将该标识变量赋值为假。
在上传文件的大小超过1M时,在WEBDAV模块直接使用外部存储设备接收并储存上传文件之前,还包括:http服务器先判断http连接上下文中扩充的标识变量的赋值,如果赋值为真,则WEBDAV模块直接使用外部存储设备接收并储存上传文件。
所述的http报文头部的内容包含超文本传送协议方法和请求路径。
所述的步骤S2中,外部存储设备为移动硬盘,或者电脑,或者手机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410015196.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多转轴PCB板焊接旋转吹风治具
- 下一篇:截污系统





