ASP文件相关的一些函数。有以下几个:
1. 得到文件扩展名
2. ASP上传文件漏洞检测
3. 格式化显示文件大小
4. asp检测上传图片是否为真实图片
5. 上传文件扩展名检测
6. 取得文件对应的图标
7. 下载文件等相关函数
程序代码
<%
'*******************************************************
'作 用: 得到文件扩展名
'函数名: GetFileExt(fileTrue)
'参 数: sFileName 文件名
'返回值: 返回文件扩展名
'*******************************************************
function GetFileExt(sFileName)
GetFileExt = UCase(Mid(sFileName,InStrRev (sFileName, ".")+1))
End function
'*******************************************************
'作 用: ASP上传漏洞 "\0" 防范
'函数名: TrueStr(fileTrue)
'参 数: sFileName 文件名
'返回值: 合法文件返回 True ,否则返回False
'*******************************************************
function IsTrueFileName(sFileName)
dim str_len,pos
str_len=len(sFileName)
pos=Instr(sFileName,chr(0))
If pos=0 or pos=str_len then
IsTrueFileName = true
else
IsTrueFileName = false
End If
End function
'*******************************************************
'作 用: 检测上传的图片文件(jpeg,gif,bmp,png)是否真的为图片
'函数名: TrueStr(fileTrue)
'参 数: sFileName 文件名(此处文件名是文件夹的物理全路径)
'返回值: 确实为图片文件则返回 True ,否则返回False
'*******************************************************
function IsImgFile(sFileName)
const adTypeBinary=1
dim return
dim jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)
dim bmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D)
dim png(3):png(0)=CByte(&H89):png(1)=CByte(&H50):png(2)=CByte(&H4E):png(3)=CByte(&H47)
dim gif(5):gif(0)=CByte(&H47):gif(1)=CByte(&H49):gif(2)=CByte(&H46):gif(3)=CByte(&H39):gif(4)=CByte(&H38):gif(5)=CByte(&H61)
on error resume next
return=false
dim fstream,fileExt,stamp,i
'得到文件后缀并转化为小写
FileExt = LCase(GetFileExt(sFileName))
'如果文件后缀为 jpg,jpeg,bmp,gif,png 中的任一种
'则执行真实图片判断
If strInString(FileExt,"jpg|jpeg|bmp|gif|png")=true then
Set fstream=Server.createobject("ADODB.Stream")
fstream.Open
fstream.Type=adTypeBinary
fstream.LoadFromFile sFileName
fstream.position=0
select case LCase(FileExt)
case "jpg","jpeg"
stamp=fstream.read(2)
for i=0 to 1
If ascB(MidB(stamp,i+1,1))=jpg(i) then return=true else return=false
next
case "gif"
stamp=fstream.read(6)
for i=0 to 5
If ascB(MidB(stamp,i+1,1))=gif(i) then return=true else return=false
next
case "png"
stamp=fstream.read(4)
for i=0 to 3
If ascB(MidB(stamp,i+1,1))=png(i) then return=true else return=false
next
case "bmp"
stamp=fstream.read(2)
for i=0 to 1
If ascB(MidB(stamp,i+1,1))=bmp(i) then return=true else return=false
next
End select
fstream.Close
Set fseteam=nothing
If err.number<>0 then return = false
else
return = true
End If
IsImgFile = return
End function
'*******************************************************
'作 用: 上传文件扩展名检测
'函数名: CheckFileExt
'参 数: sFileExt 上传文件夹的后缀
' strExt 允许或禁止上传文件夹的后缀,多个以"|"分隔
' blnAllow 是允许还是禁止上传 strExt 中指定的后缀
'返回值: 合法文件返回 True ,否则返回False
'*******************************************************
Function CheckFileExt(sFileExt,strExt,blnAllow)
dim arrExt,return
'= 禁止上传的文件列表
'strExt = "EXE|JS|BAT|HTML|HTM|COM|ASP|ASA|DLL|PHP|JSP|CGI"
sFileExt = UCase(sFileExt)
strExt = UCase(strExt)
arrExt = split(strExt,"|")
If blnAllow=true then '只允许上传指定的文件
return = false
for i=0 to UBound(arrExt)
If sFileExt=arrExt(i) then return=true
next
'response.write "Ext: "&sFileExt & " return: " & return & " "
else '禁止上传指定的文件
return = true
for i=0 to UBound(arrExt)
If sFileExt=arrExt(i) then return=false
next
End If
CheckFileExt = return
End Function
'*******************************************************
'作 用: 格式化显示文件大小
'FileSize: 文件大小
'*******************************************************
Function FormatSize(FileSize)
If FileSize<1024 then FormatSize = FileSize & " Byte"
If FileSize/1024 <1024 And FileSize/1024 > 1 then
FileSize = FileSize/1024
FormatSize=round(FileSize*100)/100 & " KB"
Elseif FileSize/(1024*1024) > 1 Then
FileSize = FileSize/(1024*1024)
FormatSize = round(FileSize*100)/100 & " MB"
End If
End function
'*******************************************************
'作 用: 取得文件对应的图标
'函数名: FormatSize(FileSize)
'参 数: FileName 文件名
'返回值: 合法文件返回 True ,否则返回False
'*******************************************************
Function GetFileIcon(FileName)
dim FileExt,Fso1
FileExt = GetFileExt(FileName)
ImgPath= strAdminRoot & "Style/images/file/" & FileExt & ".gif"
Set Fso1 = Server.CreateObject("Scripting.FileSystemObject")
If Fso1.fileExists(server.MapPath(ImgPath))=true then
GetFileIcon= "<img src=""" & ImgPath & """>"
else
GetFileIcon= "<img src=""" & strAdminRoot & "Style/images/file/unknow.gif" & """>"
End If
Set Fso1=nothing
End Function
'*******************************************************
'作用:下载文件。
'函数名: DownFile(FileName)
' FileName
'*******************************************************
Sub DownFile(FileName)
fname = server.MapPath(fname)
filename=split(fname,"\")
Set objAdoStream=Server.createObject("ADODB.Stream")
objAdoStream.Type=1
objAdoStream.open()
objAdoStream.LoadFromFile(fname)
strchar=objAdoStream.Read()
fsize=objAdoStream.size
objAdoStream.Close()
Set objAdoStream=nothing
Response.AddHeader "content-type","application/x-msdownload"
response.AddHeader "Content-Disposition","attachment;filename=" & filename(ubound(filename))
Response.AddHeader "content-length", fsize
Response.BinaryWrite(strchar)
Response.Flush()
End Sub
%>
--------------------------------
分享到:
相关推荐
综上所述,ASP文件操作函数为开发者提供了一套强大且灵活的工具,使得在服务器端处理文件变得简单高效。通过熟练掌握这些函数,可以轻松地实现读取、写入、修改和生成文件的功能,提升Web应用程序的性能和用户体验。...
下面,我们将详细探讨ASP中常用的文件操作函数。 1. **FileOpen**: 这个函数用于打开一个文件,它需要一个文件路径和一个打开模式(如读、写或追加)。例如,`FileOpen("path", 1)`会以只读方式打开指定路径的文件...
对于学习ASP并希望深入掌握其功能的开发者而言,了解并熟练运用ASP中的常用函数是至关重要的。根据给定文件的信息,我们可以提炼出一系列与ASP相关的知识点,涵盖数据库操作、用户信息获取、字符串处理、日期时间...
### ASP读取与保存文件函数解析 #### 一、ASP技术背景 Active Server Pages (ASP) 是一种服务器端脚本环境,在...以上两个函数为ASP中常见的文件读写操作提供了较为完整的解决方案,能够满足大多数应用场景的需求。
以下是对给定文件中的几个自定义函数的详细解析,这些函数覆盖了字符串处理、数组操作以及SQL构建等方面。 #### 1. `getReplace(Str)` 该函数用于移除字符串中的括号。 - **参数**: `Str` - 输入的字符串。 - **...
以下是一些 ASP.NET 常用的函数,以及它们的功能和用法: 1. `Abs(number)`:此函数返回输入数值的绝对值,无论该数值是正还是负。 2. `Asc(String)`:这个函数返回给定字符串的第一个字符的 ASCII 码,用于在字符...
从给定的部分内容来看,这段文本似乎是在讨论如何使用ASP ...然而,为了更全面地掌握ASP VBScript,了解其内置的字符串处理、数组操作、文件系统访问等常用函数也是十分必要的,这些将在其他资源和文档中进一步探讨。
AESCLS.asp文件可能包含一个自定义的ASP类,用于执行AES加密和解密操作。AES的核心是基于替换和置换的混合操作,它允许在不同密钥下对数据进行多次加密,提供强大的安全性。在ASP中使用AES,你需要导入相应的库,...
以下是对给定文件中提及的一些常用ASP函数的详细解释: 1. **Array()** 函数: - `Array()` 用于创建一个数组,可以包含字符或数字。在提供的代码范例中,`Dim User=Array("张三","李四","王五")` 创建了一个包含3...
### ASP函数大全:深入解析与应用 #### 一、Array() `Array()`是ASP中用于...以上是ASP中常用的几个内置函数及其详细解析,它们在处理数据和日期时非常有用,掌握了这些函数,可以大大提高开发效率和代码的可读性。
#### 二、字符串操作函数 **1. Asc(String)** - **功能**: 返回字符串第一个字符的 ASCII 码。 - **参数**: `String` 表示一个字符串。 - **示例**: `Asc("Hello")` 将返回 `72`。 **2. Chr(charcode)** - **功能*...
以上只是ASP中常用函数的一部分,实际开发中还有更多如数据处理、文件操作、URL编码等函数。了解并熟练运用这些函数,能大大提高ASP开发的效率和安全性。希望这些分享能对你在ASP开发过程中有所帮助。
3. **数组操作函数**:在ASP中,数组处理有时较为复杂,自定义函数库可能包含了数组创建、遍历、排序或合并等功能,如`Array()`, `Ubound()`, `Lbound()`等。 4. **文件系统对象函数**:通过File System Object...
检测ASP图片木马的函数使用FSO(File System Object)来读取客户端文件的内容,并检查文件内容中是否包含有危险的操作字符。如果文件内容包含有恶意代码,函数将返回True,否则返回False。 函数实现 下面是检测ASP...
以上列举的函数仅是ASP.NET中众多内置函数的一部分,它们在不同的场景下发挥着重要作用,无论是数据处理、格式化、文件操作还是数学计算,都提供了强大的支持。掌握这些函数的使用方法,将极大地提高ASP.NET开发者的...
文件操作也是常见的需求,ASP.NET提供FileUpload控件让用户上传文件,然后通过Server.MapPath获取服务器上的文件路径,再配合System.IO命名空间的File类进行读写操作。 最后,错误处理和日志记录是提升应用健壮性的...
这里我们将深入探讨一些常用的WEB设计函数,主要关注ASP.NET中的函数以及与数据处理相关的函数。 首先,ASP.NET是微软开发的一个用于构建Web应用程序的框架,它提供了丰富的内置函数和类库,使得开发者能够高效地...
#### 字符串操作函数 1. `Chr(charCode)`: 返回指定ASCII码对应的字符。 2. `Left(string, length)`: 从字符串左边截取指定长度的子串。 3. `Mid(string, start, [length])`: 从字符串指定位置开始截取子串。 4. `...