马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.上传|无组件 第五天:失掉文件单位
明天咱们要停止的局部,是对照风趣味性地――失掉文件内容。其实,看看咱们的要处置的数据,再看看前地理本单位的处置,信任人人也会意中无数。
为了明晰的辨别文件和文本单位,这一次,咱们用ourRequest.file(index)来对应文本单位的ourRequest.form(index)。固然,由于关于文件,咱们需求失掉的信息分歧于文本,所以此次失掉的,也不会是FormElement,而是一个新对象FileElement。
文件单位和文本单位在原始数据上,分歧点少得不幸:
1。第一行多了一个filename="xxx"模块;
2。多了一个用于唆使contentType的第二行。
感乐趣的方针信息分歧,所以,失掉的对象FileElement也和FormElement有一些分歧点:
1。不需求count属性(不存在checkbox情形);
2。不需求Item(index)(同上,不存在checkbox情形);
3。需求一个ContentType属性;
4。需求一个FilePath属性;
5。需求一个FileName属性;
6。需求一个Size属性;
7。由于需求的是二进制,所以,没有需要停止二进制=>字符串的转换;
8。由于需求的是二进制,所以,属性Value改成Data更适合
另外,UploadRequest也应当响应的添加Files属性、Form(index)办法、和m_dicFiles成员。如今,咱们就来扩大他:
A。UploadRequest(下面设计过,这里是扩大)
这个类和request对象是对应的
属性:
RawData 失掉原始数据,便利反省[只读]
Forms 失掉一个有count属性的计数器,
可以用outRequest.Forms.Count的体例,失掉文本表单域的的个数[只读]
Files 失掉一个有count属性的计数器,
可以用outRequest.Files.Count的体例,失掉文件表单域的的个数[只读]
Form(index) 可以用数字或文本检索文本表单域,做用相似request.form。
他前往一个FormElement型的对象
File(index) 可以用数字或文本检索文件表单域,他前往一个FileElement型的对象
B。FileElement
可以把它当作单个文件域的化身。经由过程这个类,可以失掉具体的文件信息,好比name,data,path,filename,contentType,size等等。
属性:
Name 文件域的称号。就是<input type=file name=xxx>里的xxx
Data 文件域的内容。二进制串
ContentType 文件域的contentType
FilePath 文件域包括的文件在客户机上的全途径
FileName 文件域包括的文件的文件名
Size 文件域包括的文件的尺寸
这里是完成。仍是存成doupload.asp:
<%
'=========================================================================
'' 这个,是存储文本域信息的的类。每个name的文本域,对应一个如许的类。
'=========================================================================
Class FormElement
' m_开首,暗示类成员变量。
Private m_dicItems
Private Sub Class_Initialize()
Set m_dicItems = Server.CreateObject("Scripting.Dictionary")
End Sub
' count是我们这个类的一个只读属性
Public Property Get Count()
Count = m_dicItems.Count
End Property
' Value是一个默许属性。目标是失掉值
Public Default Property Get Value()
Value = Item("")
End Property
' Name是失掉文本域称号。就是<input name=xxx>里的xxx
Public Property Get Name()
Keys = m_dicItems.Keys
Name = Keys(0)
Name = left(Name,instrrev(Name,"_")-1)
End Property
' Item属性用来失掉重名表单域(好比checkbox)的某一个值
Public Property Get Item(index)
If isNumeric(index) Then '是数字,正当!
If index > m_dicItems.Count-1 Then
err.raise 1,"IndexOutOfBound", "表单位素子集索引越界"
End If
Itms = m_dicItems.Items
Item = Itms(index)
ElseIf index = "" Then '没给值?那就前往一切的!逗号分隔
Itms = m_dicItems.Items
For i = 0 to m_dicItems.Count-1
If i = 0 Then
Item = Itms(0)
Else
Item = Item & "," & Itms(i)
End If
Next
Else '给个一个不是数字的东东?失足!
err.raise 2,"IllegalArgument", "不法的表单位素子集索引"
End If
End Property
Public Sub Add(key, item)
m_dicItems.Add key, item
End Sub
End Class
'=========================================================================
'' 这个,是存储文件域信息的的类。每个name的文件,对应一个如许的类。
'=========================================================================
Class FileElement
' m_开首,暗示类成员变量。
Private m_strName
Private m_bData
Private m_strContentType
Private m_strFilePath
Private m_strFileName
Private m_lSize
' Data是一个默许属性。目标是失掉值
Public Default Property Get Data()
Data = m_bData
End Property
' Name是失掉文件域称号,就是<input type=file name=xxx>里的xxx
Public Property Get Name()
Name = m_strName
End Property
' ContentType是失掉文件contentType
Public Property Get ContentType()
ContentType = m_strContentType
End Property
' FilePath是失掉文件在客户真个途径
Public Property Get FilePath()
FilePath = m_strFilePath
End Property
' FilePath是失掉文件在客户真个途径
Public Property Get FileName()
FileName = m_strFileName
End Property
' Size是失掉文件巨细
Public Property Get Size()
Size = m_lSize
End Property
Public Sub Add(name, data, contenttype, path)
m_strName = name
m_bDat</p> ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。Apache ASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。 |