⑴ 上传的大文件
基于WEB的文件上传可以使用FTP和HTTP两种协议,用FTP的话虽然传输稳定,但安全性是个严重的问题,而且FTP服务器读用户库获取权限,这样对于用户使用来说还是不太方便。 剩下只有HTTP。在HTTP中有3种方式,PUT、WEBDAV、RFC1867,前2种方法不适合大文件上传,基本上我们使用的web上传都是基于RFC1867标准的HTML中基于表单的文件上传。RFC1867:1.HTML表单现有的HTML规范为INPUT元素的TYPE属性定义了八种可能的值,分别是:CHECKBOX, HIDDEN,MAGE,PASSWORD,RADIO,RESET,SUBMIT,TEXT。 另外,当表单采用POST方式的时候,表单默认的具有“application/x-www-form-urlencoded”的ENCTYPE属性。RFC1867标准对HTML做出了两处修改:(1)为INPUT元素的TYPE属性增加了一个FILE选项。(2)INPUT标记可以具有ACCEPT属性,该属性能够指定可被上传的文件类型或文件格式列表。另外,本标准还定义了一种新的MIME类型:multipart/form-data,以及当处理一个带有ENCTYPE=multipart/form-data 并且/或含有<INPUT type=file>的标记的表单时所应该采取的行为。举例来说,当HTML表单作者想让用户能够上传一个或更多的文件时,他可以这么写:<FORM ENCTYPE=multipart/form-data ACTION=_URL_ METHOD=POST>File to process:<INPUT NAME=userfile1 TYPE=file><INPUT TYPE=submit VALUE=Send File></FORM>HTML DTD里所需要做出的改动是为InputType实体增加一个选项。此外,我们也建议用一系列用逗号分隔的文件类型来作为INPUT标记的ACCEPT属性。… (其他元素) …<!ENTITY % InputType (TEXT | PASSWORD | CHECKBOX |RADIO | SUBMIT | RESET |IMAGE | HIDDEN | FILE )><!ELEMENT INPUT – 0 EMPTY><!ATTLIST INPUTTYPE %InputType TEXTNAME CDATA #IMPLIED — required for all but submit and resetVALUE CDATA #IMPLIEDSRC %URI #IMPLIED — for image inputs –CHECKED (CHECKED) #IMPLIEDSIZE CDATA #IMPLIED –like NUMBERS,but delimited with comma, not spaceMAXLENGTH NUMBER #IMPLIEDALIGN (top|middle|bottom) #IMPLIEDACCEPT CDATA #IMPLIED –list of content types>… (其他元素) …2.文件传输延迟在某些情况下,在确实准备接受数据前,服务器先对表单数据中的某些元素(比如说用户名,账号等)进行验证是推荐的做法。但是,经过一定的考虑后,我们认为如果服务器想这样做的话,最好是采用一系列的表单,并将前面所验证过的数据元素作为“隐藏”字段传回给客户端,或者是通过安排表单使那些需要验证的元素先显示出来。这样的话,那些需要做复杂的应用的服务器可以自己维持事务处理的状态,而那些简单的应用的则可以实现得简单些。HTTP协议可能需要知道整个事务处理中的内容总长度。即使没有明确要求,HTTP客户端也应该提供上传的所有文件的内容总长度,这样一个繁忙的服务器就能够判断文件的内容是否是过大以至于将不能完整地处理,从而返回一个错误代码并关闭该连接,而不用等到接受了所有的数据才进行判断。一些现有的CGI应用对所有的POST事务都需要知道内容总长度。如果INPUT标记含有一个MAXLENGTH属性,客户端可以将这个属性值看作是服务器端所能够接受的传送文件的最大字节数。在这种情况下,服务器能够在上传开始前,提示客户端在服务器上有多少空间可以用来进行文件上传。但是应该引起注意的是,这仅仅是一个提示,在表单被创建后和文件上传前,服务器的实际需求可能会发生改变。在任何情况下,如果接受的文件过大的话,任何一个HTTP服务器都有可能在文件传输的过程中中断传输。3.传输二进制数据的其他解决办法有些人曾经建议使用一种新的MIME类型aggregate,比如说aggregate/mixed 或是content-transfer-encoding 包来描述那些不确定长度的二进制数据,而不是靠分解为多个部分来表示。虽然我们并不反对这么做,但这需要增加额外的设计和标准化工作来让大家接受并理解aggregate。 从另一方面来说,分解为多部分的机制工作得很好,能够非常简单的在客户发送端和服务器接受端加以实现,而且能像其他一些综合处理二进制数据的方式一样高效率地工作。RFC上传1.一次性得到上传的数据,然后分析处理。看了N多代码之后发现,无组件程序和一些COM组件都是使用Request.BinaryRead方法。一次性得到上传的数据,然后分析处理。这就是为什么上传大文件很慢的原因了,IIS超时不说,就算几百M文件上去了,分析处理也得一阵子。2.一边接收文件,一边写硬盘。了解了一下国外的商业组件,比较流行的有Power-Web,AspUpload,ActiveFile,ABCUpload,aspSmartUpload,SA-FileUp。其中比较优秀的是ASPUPLOAD和SA-FILE,他们号称可以处理2G的文件(SA-FILE EE版甚至没有文件大小的限制),而且效率也是非常棒,难道编程语言的效率差这么多?查了一些资料,觉得他们都是直接操作文件流。这样就不受文件大小的制约。但老外的东西也不是绝对完美,ASPUPLOAD处理大文件后,内存占用情况惊人。1G左右都是稀松平常。至于SA-FILE虽然是好东西但是破解难寻。然后发现2款.NET上传组件,Lion.Web.UpLoadMole和AspnetUpload也是操作文件流。但是上传速度和CPU占用率都不如老外的商业组件。做了个测试,LAN内传1G的文件。ASPUPLOAD上传速度平均是4.4M/s,CPU占用10-15,内存占用700M。SA-FILE也差不多这样。而AspnetUpload最快也只有1.5M/s,平均是700K/s,CPU占用15-39,测试环境: PIII800,256M内存,100M LAN。我想AspnetUpload速度慢是可能因为一边接收文件,一边写硬盘。资源占用低的代价就是降低传输速度。但也不得不佩服老外的程序,CPU占用如此之低…..。上传问题我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到Internet Explorer显示 The page cannot be displayed – Cannot find server or DNS Error,好像是怎么也catch不了这个错。为什么?因为这是个client side错误,server side端的Application_Error是处理不到的。解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为建立的pipe里分块读取数据。Chris Hynes为我们提供了这样的一个方案(用HttpMole),该方案除了允许你上传大文件外,还能实时显示上传进度。Lion.Web.UpLoadMole和AspnetUpload 两个.NET组件都是利用的这个方案。方案原理:利用HttpHandler实现了类似于ISAPI Extention的功能,处理请求(Request)的信息和发送响应(Response)。方案要点:1. httpHandler or HttpMolea.分块读取和写入数据b.实时跟踪上传进度更新meta信息2. 利用隐含的HttpWorkerRequest用它的GetPreloadedEntityBody 和 ReadEntityBody方法处理文件流3. 自定义Multipart MIME 解析器。自动截获MIME分割符。将文件分块写如临时文件。实时更新Appliaction 状态(ReceivingData, Error, Complete) 。
⑵ 大文件传输,教您大文件如何快速传输
操作步骤如下:
1、选择要传输的文件/文件夹,点击右键“添加到压缩文件”专,
⑶ 网上传送大的文件需要怎么传
网上传送大的文件,有不同的载体,如:上传到网页、上传到网盘、上传到邮箱等,以上传到qq邮箱为例,具体方法是:
1、登录QQ。
2、点击邮箱标记,进入邮箱。
3、点击文件中转站,如下图:
5、上传到文件中转站的文件,可以保留一个月,在此间可以发送给任意一个邮箱。
⑷ 百度网盘中文件超出大小4G限制,请至PC客户端上传大文件啥意思
就是叫您到客户端里面进行上传大尺寸的文件。
⑸ 大文件秒上传的原理是什么
不清楚来,我只能大致猜测一下,不要当真源,也只是想想而已:在互联网上有很多资源,每个资源有各自的身份ID, 类似于MD5,或者HASH,上传的时候,会看你的资源是否在网络上有相同的ID,有的话,就从网络上获取,并存放在你的文件夹下,速度几乎可以达到秒传,只是搜索了一个相同的链接而已,所以速度很快,本地的哪个文件,可能压根就没传上去,那个上传的资源其实并不正真在你的网盘里面而是一个类似于网络资源的链接,可以把网络想象成一个巨大的文件服务器磁盘,你从你 的电脑上传文件的时候,它会检索自己的磁盘是否有重复的文件,有就不会复制你的文件,直接在自己的磁盘里面调用, 那没有的怎么办? 其实这个也好解决, 基本上我们的资源是取之于网用之于网,网络上的资源可以想象成覆盖了哦我们本地99%的资源, 大部分都能在网上找到匹配的只是想想而已,不必当真!呵呵!!
⑹ 115网盘的大文件上传与文件上传有什么不同
大文件上传可以断点续传,而且支持秒传,就是115服务器有的文件,你可以实现一秒上传
⑺ 超大文件传输_大文件传输方式有哪些
超大文件传输有多种方式可以参考,下面列几种我比较熟悉的:
1.邮件传输
在邮件的添加内附件中,上容传文件即可,大多邮箱都支持超大文件传输(qq邮箱最大支持3G)
2.网盘传输
选择一款你和朋友都在用的网盘工具,上传文件后分享给对方即可。
3.大文件传输工具
使用专门的工具应该是最方便的,操作方式因产品而异,这里建议使用文叔叔网站,无须登录即可使用,传文件不限速,最大支持5G单个文件。
⑻ 邮箱超大附件上传是怎么回事用什么邮箱传文件比较好
使用邮箱传输超大附件建议用TOM VIP邮箱,空间容量比较大,而且是专属发信通道,传输的速度要更快一些。而且可以关联“随心邮”,直接微信收发邮件,收到邮件第一时间在微信智能提醒,此外还包括邮件收藏、分享等20多种移动处理功能。
⑼ 超大文件上传如何实现
1、邮件:比较常用,方便快捷,但是附件大小有限制,一般是10-30M,即使有超大附件发送,但是考虑到发送者和接受者的邮件服务器限制,不能保证邮件一定能发送成功,且在文件中转站中有一定时限,存在文件过期的现象。而且事实是,大多数电子邮件提供商最多只能支持10 MB。2、QQ:QQ用户量比较大,操作比较简单方便,适合1G以下的文件传输,超过1G的文件,传输速度会变得非常缓慢,即使支持离线传输,但是传输大文件时不稳定,很容易中断。3、FTP:FTP对文件的大小没有限制,操作比较简单。但是文件体量变大时,速度比较慢,容易中断,而且容易出现传输错误的现象。并且FTP是以明文传输数据,安全性也较差。这些情况极易给企业造成很大的影响和损失。4、Ftrans超大文件高速传输:采用超大文件智能分段技术,大大提升超大文件传输性能,支持断点续传、错误重传,确保文件传输的可靠性、稳定性和安全性,像传输普通文件一样,简单便捷地进行超大文件上传下载。
⑽ 超大文件上传-如何上传文件-大文件上传如何实现
大文件可以切片上传,将blob进行切片。然后用ajax提交。每个片段提交以后做状态记录,如果没有上传或者上传失败的放到队列中,这样方便做断点上传。