这种编码方案在传送大量数据的时候,比起缺省的"application/x-url-encoded"表单编码方案,显得效率要高得多。url编码只有很有限的字符集,使用任何超出字符集的字符,必须用'%nn'代替,这里的nn表示相应的2个十六进制数字。例如,即使是普通的空格字符也要用'%20'代替。而rfc1867使用多部分mime编码,就象通常在e-mail消息中看到的那样,不编码来传送大量数据,而只是在数据周围加上很少的简单但实用的头部。主要的厂商都采用了建议的"浏览..."按钮,用户能很容易的使用本地"打开文件..." 对话框选择要上传的文件。
rfc1867仍然将大多数文件上传的灵活方法留给了你的web应用程序。put用得很有限。webdav对内容的作者很有用,比如frontpage用户,但是对想在web应用程序中加入文件上传的web开发者来说很少用到。因此,rfc1867是在web应用程序中加入文件上传的最好的办法。
在实际应用中,免费提供了posting acceptor 。asp不懂"multipart/form-data" 编码方案。取而代之,提供了posting acceptor ,posting acceptor是一种在上传完成后,接受repost到一个asp页的isapi应用程序。
software artisans的sa-fileup是最早的商业active server之一。几经改进,现在作为一个纯粹的asp存在。
二.基于asp的文件上传实现原理分析
基本原理是:采用ado stream对象的binaryread方法将form中的所有数据读出,从中截取出所需的文件数据,以二进制文件方式存盘。
下面是上传文件页面的一个例子(upload.htm):
<html>
<body>
<form name="upload" method="post" enctype="multipart/form-data"
action="upload.asp">
<input type="file" name="filename">
<input type="submit" value="upload"></td>
</form>
</body>
</html>
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器