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

2016-01-29 18:14 54 1 收藏

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

【 tulaoshi.com - ASP 】

  简介
文件上传是将任意的文件从客户机发送到服务器的过程。最简单、最方便的上传方法是使用支持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:dirAspUpload.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

来源:http://www.tulaoshi.com/n/20160129/1504981.html

延伸阅读
文件main.java 代码如下: package com.HHBrowser.android; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.EditText;...
标签: 浏览器
用一行代码将Safari浏览器变成记事本   大家只要在地址栏上输入这行代码: 当大家输入之后就会发现页面可以输入文字啦! 至于具体的原理大家请谷歌之,而且电脑的浏览器也适用的! 大家不妨可以去试试哦~         注 :更多精彩教程请关注图老师电脑教程栏目
一种把人吓一跳的感觉。实现方法是,把下面的JavaScript代码加入到< body与< /body之间: < script language="JavaScript" function surfto(form) { var myindex=form.select1.selectedIndex if (form.select1.options[myindex].value != null) { parent.main.location.href=form.select1.options[myindex].value; } } <...
在upload.jsp页面中将多个文件域对象命名为相同的名字,这样在action中就可以将多个文件域解析成一个数组,数组的大小就是文件域的个数,同时一个文件域解析成三个对应的变量,因此多个文件域对应三个数组,其中每个数组的大小就是文件域的个数。jsp页面代码如下: 代码如下: form action="upload.action" name="uploadForm" method="post" e...
标签: ASP
  <% ' upload.asp Function IntMin(n,y)     If n<y and n0 Then         IntMin=Int(n)     ElseIf y0 Then         IntMin=Int(y)     Else      &...

经验教程

701

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部