cf_util.cfm
上传用户:ah_jiwei
上传日期:2022-07-24
资源大小:54044k
文件大小:4k
源码类别:

数据库编程

开发平台:

Visual C++

  1. <cfsetting enablecfoutputonly="Yes">
  2. <!---
  3.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  4.  * Copyright (C) 2003-2007 Frederico Caldeira Knabben
  5.  *
  6.  * == BEGIN LICENSE ==
  7.  *
  8.  * Licensed under the terms of any of the following licenses at your
  9.  * choice:
  10.  *
  11.  *  - GNU General Public License Version 2 or later (the "GPL")
  12.  *    http://www.gnu.org/licenses/gpl.html
  13.  *
  14.  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  15.  *    http://www.gnu.org/licenses/lgpl.html
  16.  *
  17.  *  - Mozilla Public License Version 1.1 or later (the "MPL")
  18.  *    http://www.mozilla.org/MPL/MPL-1.1.html
  19.  *
  20.  * == END LICENSE ==
  21.  *
  22.  * This file include generic functions used by the ColdFusion Connector (MX 6.0 and above).
  23. --->
  24. <cffunction name="RemoveFromStart" output="false" returntype="String">
  25. <cfargument name="sourceString" type="String">
  26. <cfargument name="charToRemove" type="String">
  27. <cfif left(ARGUMENTS.sourceString, 1) eq ARGUMENTS.charToRemove>
  28. <cfreturn mid( ARGUMENTS.sourceString, 2, len(ARGUMENTS.sourceString) -1 )>
  29. </cfif>
  30. <cfreturn ARGUMENTS.sourceString>
  31. </cffunction>
  32. <cffunction name="RemoveFromEnd" output="false" returntype="String">
  33. <cfargument name="sourceString" type="String">
  34. <cfargument name="charToRemove" type="String">
  35. <cfif right(ARGUMENTS.sourceString, 1) eq ARGUMENTS.charToRemove>
  36. <cfreturn mid( ARGUMENTS.sourceString, 1, len(ARGUMENTS.sourceString) -1 )>
  37. </cfif>
  38. <cfreturn ARGUMENTS.sourceString>
  39. </cffunction>
  40. <!---
  41. Check file content.
  42. Currently this function validates only image files.
  43. Returns false if file is invalid.
  44. detectionLevel:
  45. 0 = none
  46. 1 = check image size for images,
  47. 2 = use DetectHtml for images
  48. ---->
  49. <cffunction name="IsImageValid" returntype="boolean" output="true">
  50. <cfargument name="filePath" required="true" type="String">
  51. <cfargument name="extension" required="true" type="String">
  52. <cfset var imageCFC = "">
  53. <cfset var imageInfo = "">
  54. <cfif not ListFindNoCase("gif,jpeg,jpg,png,swf,psd,bmp,iff,tiff,tif,swc,jpc,jp2,jpx,jb2,xmb,wbmp", ARGUMENTS.extension)>
  55. <cfreturn true>
  56. </cfif>
  57. <cftry>
  58. <cfif REQUEST.CFVersion gte 8>
  59. <cfset objImage = ImageRead(ARGUMENTS.filePath) >
  60. <cfset imageInfo = ImageInfo(objImage)>
  61. <!--- <cfimage action="info" source="#ARGUMENTS.filePath#" structName="imageInfo" /> --->
  62. <cfelse>
  63. <cfset imageCFC = createObject("component", "image")>
  64. <cfset imageInfo = imageCFC.getImageInfo("", ARGUMENTS.filePath)>
  65. </cfif>
  66. <cfif imageInfo.height lte 0 or imageInfo.width lte 0>
  67. <cfreturn false>
  68. </cfif>
  69. <cfcatch type="any">
  70. <cfreturn false>
  71. </cfcatch>
  72. </cftry>
  73. <cfreturn true>
  74. </cffunction>
  75. <!---
  76.  Detect HTML in the first KB to prevent against potential security issue with
  77.  IE/Safari/Opera file type auto detection bug.
  78.  Returns true if file contain insecure HTML code at the beginning.
  79. --->
  80. <cffunction name="DetectHtml" output="false" returntype="boolean">
  81. <cfargument name="filePath" required="true" type="String">
  82. <cfset var tags = "<body,<head,<html,<img,<pre,<script,<table,<title">
  83. <cfset var chunk = lcase( Trim( BinaryFileRead( ARGUMENTS.filePath, 1024 ) ) )>
  84. <cfif not Len(chunk)>
  85. <cfreturn false>
  86. </cfif>
  87. <cfif refind('<!doctypeW*x?html', chunk)>
  88. <cfreturn true>
  89. </cfif>
  90. <cfloop index = "tag" list = "#tags#">
  91.       <cfif find( tag, chunk )>
  92. <cfreturn true>
  93. </cfif>
  94. </cfloop>
  95. <!--- type = javascript --->
  96. <cfif refind('types*=s*[''"]?s*(?:w*/)?(?:ecma|java)', chunk)>
  97. <cfreturn true>
  98. </cfif> >
  99. <!--- href = javascript --->
  100. <!--- src = javascript --->
  101. <!--- data = javascript --->
  102. <cfif refind('(?:href|src|data)s*=s*[''"]?s*(?:ecma|java)script:', chunk)>
  103. <cfreturn true>
  104. </cfif>
  105. <!--- url(javascript --->
  106. <cfif refind('urls*(s*[''"]?s*(?:ecma|java)script:', chunk)>
  107. <cfreturn true>
  108. </cfif>
  109. <cfreturn false>
  110. </cffunction>