ewgetfile.asp

来自「AspMaker调用的自定义包」· ASP 代码 · 共 96 行

ASP
96
字号
<!--##session blobview##-->
<%
<!--## If PROJ.OptionExplicit Then ##-->
Dim sFilter
<!--## End If ##-->

Response.Buffer = True

' Get key
<!--##
For i = 1 to TABLE.Fields.Count
	Set KEYFIELD = TABLE.Fields.Seq(i)
	If KEYFIELD.FldIsPrimaryKey Then
		sFldVar = KEYFIELD.FldVar
		sFldVar2 = Mid(sFldVar, 3)
		If PROJ.OptionExplicit Then
##-->
Dim <!--##=sFldVar##-->
<!--##
		End If
##-->
<!--##=sFldVar##--> = Request.QueryString("<!--##=sFldVar2##-->")
If <!--##=sFldVar##--> = "" Or IsNull(<!--##=sFldVar##-->) Then Response.End
<!--##
	End If
Next
##-->

<!--## If TABLE.TblKey <> "" Then ##-->

' Open Connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
	<!--## If InStr(1,DB.DBDBMSName,"ORA",vbTextCompare) > 0 Then ##-->
' For Oracle database, use connection string for BLOB field view instead of DSN
xDb_Conn_Str = xDb_Conn_Str_Ora_Blob
	<!--## End If ##-->
conn.Open xDb_Conn_Str

sFilter = ewSqlKeyWhere
<!--##
For i = 1 to TABLE.Fields.Count
	Set KEYFIELD = TABLE.Fields.Seq(i)
	If KEYFIELD.FldIsPrimaryKey Then
		sFldVar = KEYFIELD.FldVar
		sFldVar2 = Mid(sFldVar, 3)
		If ewGetFieldType(KEYFIELD.FldType) = 1 Then 'Numeric
##-->
If Not IsNumeric(<!--##=sFldVar##-->) Then
	sFilter = "0=1" ' prevent sql injection
End If
<!--##
		End If
##-->
sFilter = Replace(sFilter, "@<!--##=sFldVar2##-->", AdjustSql(<!--##=sFldVar##-->))
<!--##
	End If
Next
##-->

sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sSql, conn

If Not rs.Eof Then

	'rs.MoveFirst
	<!--## If FIELD.FileTypeFld <> "" Then ##-->
	If rs("<!--##=FIELD.FileTypeFld##-->")&"" <> "" Then
		Response.ContentType = rs("<!--##=FIELD.FileTypeFld##-->")
	End If
	<!--## End If
	If FIELD.FileNameFld <> "" Then ##-->
	If rs("<!--##=FIELD.FileNameFld##-->")&"" <> "" Then
		Response.AddHeader "Content-Disposition", "attachment; filename=""" & rs("<!--##=FIELD.FileNameFld##-->") & """"
	End If
	<!--## End If
	If FIELD.FileSizeFld <> "" Then ##-->
	If rs("<!--##=FIELD.FileSizeFld##-->") > 0 Then
		Response.BinaryWrite rs("<!--##=FIELD.FldName##-->").GetChunk(rs("<!--##=FIELD.FileSizeFld##-->"))
	Else
		Response.BinaryWrite rs("<!--##=FIELD.FldName##-->")
	End If
	<!--## Else ##-->
	Response.BinaryWrite rs("<!--##=FIELD.FldName##-->")
	<!--## End If ##-->

End If

rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
<!--## End If ##-->
%>
<!--##/session##-->

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?