276,698
次編輯
變更
上传
,無編輯摘要
|}
'''上传'''一词来自英文(Upload),拆开来“Up”为“上”,“Load”为“载”,故上传也叫上载,与下载(Download)是逆过程。就是将信息从个人 [[ 计算机 ]]<ref>[https://www.docin.com/p-81369862.html 搜狐网的计算机 ], 豆丁, 2010-09-19</ref> (本地计算机)传送至中央计算机(远程计算机)系统上,让网络上的人都能看到。
将制作好的网页、文字、图片、视频等通过Web或者Ftp传送至互联网上的 [[ 服务器 ]] 系统,这一过程称为上传。
“上传” (“上载”)的反义词是“ [[ 下载 ]] ”<ref>[ ], , --</ref>
==分类==
上传分为Web上传和Ftp上传,前者直接通过点击网页上的链接即可操作,后者 需要专用的FTP [[ 工具 ]] 。
==区别==
[[WEB ]] 上传 与FTP 与[[FTP]] 上传的区别
WEB上传:即通过浏览器来上传文件 。
1、通过 [[ 浏览器 ]] 上传文件,按照“操作向导”一步步操作完成,用户无须培训;
2、通过分配用户权限发布课件,简单,安全;
3、不支持断点续传,支持大文件上传;
4、上传文件属性(格式,上传 [[ 时间 ]] ,人员等)自动生成,方便快捷;
5、上传后的文件,配有审核机制,保证课件质量;
FTP上传:简称文件传输协议,通过FTP上传。
1、上传之前,需要安装专业上传软件,并对 [[ 软件 ]] 加以学习,用户需要学习上传软件;
2、需要建立FTP服务器及配置设置,专业性强;
==大文件==
基于WEB的文件上传可以使用FTP和HTTP两种协议,用FTP的话虽然传输稳定,但安全性是个严重的问题,而且FTP服务器读用户库获取权限,这样对于用户使用来说还是不太方便。 剩下只 有HTTP 有[[HTTP]] 。在HTTP中有3种方式,PUT、WEBDAV、RFC1867,前2种方法不适合大文件上传,基本上我们使用的web上传都是基于RFC1867标准的HTML中基于表单的文件上传。
RFC1867:
另外,本标准还定义了一种新的MIME类型:multipart/form-data,以及当处理一个带有ENCTYPE="multipart/form-data" 并且/或含有<INPUT type="file">的标记的表单时所应该采取的行为。
举例来说,当HTML表单 [[ 作者 ]] 想让用户能够上传一个或更多的文件时,他可以这么写:
<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
ALIGN (top|middle|bottom) #IMPLIED
ACCEPT CDATA #IMPLIED --list of content types >
... (其他元素) ...
2.文件传输延迟
在某些情况下,在确实准备接受 [[ 数据 ]] 前,服务器先对表单数据中的某些元素(比如说用户名, [[ 账号 ]] 等)进行验证是推荐的做法。但是,经过一定的考虑后,我们认为如果服务器想这样做的话,最好是采用一系列的表单,并将前面所验证过的数据元素作为“隐藏”字段传回给客户端,或者是通过安排表单使那些需要验证的元素先显示出来。这样的话,那些需要做复杂的应用的 [[ 服务器 ]] 可以自己维持事务处理的状态,而那些简单的应用的则可以实现得简单些。
HTTP协议可能需要知道整个事务处理中的内容总长度。即使没有明确要求,HTTP客户端也应该提供上传的所有文件的内容总长度,这样一个繁忙的服务器就能够判断文件的内容是否是过大以至于将不能完整地处理,从而返回一个错误代码并关闭该连接,而不用等到接受了所有的数据才进行判断。一些现有的CGI应用对所有的POST事务都需要知道内容总长度。
如果INPUT标记含有一个MAXLENGTH属性, [[ 客户端 ]] 可以将这个属性值看作是服务器端所能够接受的传送文件的最大字节数。在这种情况下,服务器能够在上传开始前,提示客户端在服务器上有多少空间可以用来进行文件上传。但是应该引起注意的是,这仅仅是一个提示,在表单被创建后和文件上传前,服务器的实际需求可能会发生改变。
在任何情况下,如果接受的文件过大的话,任何一个HTTP服务器都有可能在文件传输的过程中中断传输。
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.UpLoadModule和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占用如此之低.....。
上传问题
1. httpHandler or HttpModule
a.分块读取和写入 [[ 数据]]
b.实时跟踪上传进度更新meta信息
2 FileUpload Apache实现的文件上传组件,功能齐备
3 J2KUpload java2000实现的文件上传组件,全部使用 [[ 内存 ]] ,适合多个不超过10M的小文件
==上传控件==
ASP .NET Wijmo的Upload控件
ASP.NETWijmo的HTML5 [[ 视频 ]] 播放器Video Player,是ComponentOne为ASP .NET Wijmo出品的Upload控件,可以提供一个简单和可靠的方式来将文件和数据流上传到服务器。
==特性==
全屏模式:它可以允许最终用户在全屏模式下查看HTML5视频播放器。它们可以在全屏幕模式和标准模式之间进行切换。
控制按钮:HTML5视频播放器配有标准的控制按钮,如播放、暂停、静音、 [[ 音量 ]] 控制,以及全屏显示。当你需要将显示区域最大化时,你可以自动隐藏控制栏。 主题:只需点击一下智能标签,就可以通过从六个溢价主题(北极,午夜时分,雅集,火箭,钴和英镑)中选择一个来改变视频播放器的外观。另外,还可以使用jQuery UI的ThemeRoller来创建一个自定义的主题。 == 参考来源 ==
==参考文献==[[Category: 400 應用科學類 ]]