| 
   最近做在做项目,涉及到文件上载的问题,找来资料研究了一下。当用户需要将文件传输到服务器上时,常用方式是使用FTP方法,用FTP的话虽然传输稳定,但安全性是个严峻的问题,而且FTP服务器读用户库获取权限,这样对于用户使用来说还是不太方便。假如我们能把文件上载功能与Web集成,使用户仅用Web浏览器就能完成上载任务,这对于他们来说将是异常方便的。 
  网络上有很多介绍ASP上载文件的方式,归结起来有以下三大类实现方式,读者可以根据自己网站的条件和需求来选择合适的方式。 
  一、服务器组件上载方法: 
  该方式以SA-FileUp组件、AspUpload组件、lyfUpload组件为代表。 
  Software Artisans的SA-FileUp是最早的商业Active Server组件之一,几经改进,现在作为一个纯粹的ASP组件存在。Persits Software的ASPUpload也是一个功能很强盛的COM组件。他们均实现了各种文件上载所需要的功能:上载大文件、限制上载文件的大小、上载多个文件、显示上载进度条、能够将文件保存到数据库中、……。 
  该类方式的长处是运行稳定,功能强盛,对浏览器没有任何要求。其缺点就是需要在服务器上注册组件。假如网站治理员对服务器拥有治理权限,则该方式应该是实现文件上载的首选。 
二、无组件上载方法: 
  该方式以化境无组件上传、无惧无组件上传、先锋无组件上传等为代表。 
  该方式是网络上应用最多最广的方式,并且有很多应用实例的源代码,其长处是对服务器和浏览器均没有任何要求,适应性强,应用范围广。但它也存在着一个缺点,上载文件的时候没有进度条的显示,并且IIS默认限制不答应上载超过200KB的文件(除非修改IIS的默认设置AspMaxRequestEntityAllowed)。 
  假如只需要上载小文件,则应该是首选方案。假如需要上载大文件,则需要网站治理员修改IIS的默认设置AspMaxRequestEntityAllowed。 
  三、浏览器组件上载方法: 
  该方式以XUpload组件、XUploadFiles组件、纵横HTTP文件上传组件为代表。 
  该方式在网络上应用相对要少一些,其长处是对服务器无要求,不需要在服务器上安装组件,并且能提供文件上载所需要的各种功能:上载大文件、限制上载文件的大小、上载多个文件、显示上载进度条、……。其缺点也比较明显,需要注册浏览器组件(在客户端)。该方式适用于需要上载大文件,而网站治理员对服务器没有治理权限的情况(如虚拟主机、租用空间等)。 
  
|   | 
服务器要求 | 
浏览器要求 | 
上传文件限制 | 
上传时有无进度条 | 
其他 |  
| SA-FileUp | 
 安装组件  | 
 -  | 
 支持大文件,无限制  | 
 有进度条  | 
 需要有服务器控制权  |  
| AspUpload | 
 安装组件  | 
 -  | 
 支持大文件,无限制  | 
 有进度条  | 
 需要有服务器控制权  |  
| lyfUpload | 
 安装组件  | 
 -  | 
 支持大文件,无限制  | 
 无  | 
 需要有服务器控制权  |  
| 化境无组件上传 | 
 -  | 
 -  | 
 与IIS设置相关, IIS默认设置最大200KB  | 
 无  | 
 通用, 适用小文件上载  |  
| 无惧无组件上传 | 
 -  | 
 -  | 
 与IIS设置相关, IIS默认设置最大200KB  | 
 无  | 
 通用, 适用小文件上载  |  
| 先锋无组件上传 | 
 -  | 
 -  | 
 与IIS设置相关, IIS默认设置最大200KB  | 
 无  | 
 通用, 适用小文件上载  |  
| XUploadFiles | 
 -  | 
 安装组件  | 
 支持大文件,无限制  | 
 有进度条  | 
 租用空间, 而需要上载大文件
   |  
纵横HTTP文件 上传组件 | 
 -  | 
 安装组件  | 
 支持大文件,无限制  | 
 有进度条  | 
 租用空间, 而需要上载大文件  |    |