当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用两行代码在浏览器中实现文件上传

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

ASP 中的 用两行代码在浏览器中实现文件上传


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 82 ::
收藏到网摘: n/a

  简介
文件上传是将任意的文件从客户机发送到服务器的过程。最简单、最方便的上传方法是使用支持RFC1867的浏览器,如微软的Internet Explorer4.0以上版本,Netscape3.0以上版本,或者带附件的Internet Explorer3.0。基于浏览器的文件上传是通过带有属性ENCTYPE="multipart/form-data"的HTML form实现的。这个form也必须包含一个或多个<INPUT TYPE=FILE>项,以让用户指定要上传的本地文件。


带有ENCTYPE="multipart/form-data"属性的form所发送的数据必须被一个服务器端过程解析,以展开上传的文件和其他非文件项。在ASP环境中,这种任务用编译好的active server组件能最好的完成,比如Persits软件公司的AspUpload
(http://www.persits.com)。

本文所有示例都是建立在你的系统中安装了AspUpload的基础上的。可以在这里下AspUpload
免费评估版http://www.persits.com/aspupload.html。解压文件后,将AspUpload.dll
放在任意目录中,在MS DOS窗口中执行命令

regsvr32 c:\dir\AspUpload.dll
开始
我们来创建一个简单的能上传3个文件的HTML form,和控制上传的脚本。
这里是第一个HTML文件
Test1.htm:
<HTML>
<BODY BGCOLOR="#FFFFFF">

<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="UploadScript1.asp">
<INPUT TYPE=FILE SIZE=60 NAME="FILE1"><BR>
<INPUT TYPE=FILE SIZE=60 NAME="FILE2"><BR>
<INPUT TYPE=FILE SIZE=60 NAME="FILE3"><BR>
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
</BODY>
</HTML>
每个 <INPUT TYPE=FILE> 项在浏览器中显示成为一个带有"Browse..."按钮的文本输入框。如果你没看见Browse按钮,很有可能说明你的浏览器不支持文件上传。

这里是相应的上传脚本 UploadScript1.asp:
  <HTML>  
<BODY>  
<%  
Set Upload = Server.CreateObject("Persits.Upload.1")  
Count = Upload.Save("c:\upload")
%>
<% = Count %> files uploaded.  
</BODY>  
</HTML>




ASP脚本的第一行仅仅创建了一个AspUpload对象的实例。第二行调用组件的Save方法,它实际上的作用是:它解析从浏览器发送的东西,计算出有多少个文件正在上传,并且把他们存在服务器上指定的目录。目录名可能以反斜线结束,也可能不是。所有文件将以他们原来的名字存放在目录中。我们很快将看到如何更改任意或者所有文件的名字。

Save方法返回成功上传的文件数量。万一发生错误,这个方法将抛弃之。

注意你能够使用我们的form中任意或者全部三个输入框。AspUpload有足够的智慧判断出哪些输入框使用了,哪些没有。
  

使用FILES和FORMS集合访问单个form项
我们看看第二组示例:

Test2.htm
<HTML>
<BODY BGCOLOR="#FFFFFF">

<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="UploadScript2.asp">
File 1:<INPUT TYPE=FILE NAME="FILE1">
Description 1:<INPUT TYPE=TEXT NAME="DESCR1"><BR>
File 2:<INPUT TYPE=FILE NAME="FILE2">
Description 2:<INPUT TYPE=TEXT NAME="DESCR2"><BR>

<INPUT TYPE=SUBMIT VALUE="Upload!">

</FORM>
</BODY>
</HTML>
  
UploadScript2.asp <HTML>  
<BODY>  
<%  
Set Upload = Server.CreateObject("Persits.Upload.1")  
Upload.Save "c:\upload"
%>  
Files:<BR>  
<%  
For Each File in Upload.Files  
Response.Write File.Name & "=" & File.Path & " (" & File.Size & ")<BR>"
Next
%>  
<P>  
Other items:<BR>  
<%  
For Each Item in Upload.Form  
Response.Write Item.Name & "=" & Item.Value & "<BR>"
Next
%>  
</BODY>  
</HTML>



注意我们的HTML form现在有两种输入框,TYPE=FIL