upload.aspx
上传用户:avia982301
上传日期:2008-10-30
资源大小:557k
文件大小:24k
源码类别:

.net编程

开发平台:

C#

  1. <%@ Page language="VB" AutoEventWireup="false" aspCompat="True" validateRequest="False"%>
  2. <!--#include file="config.aspx"-->
  3. <%
  4. '######################################
  5. ' eWebEditor v4.00 - Advanced online web based WYSIWYG HTML editor.
  6. ' Copyright (c) 2003-2007 eWebSoft.com
  7. '
  8. ' For further information go to http://www.ewebsoft.com/
  9. ' This copyright notice MUST stay intact for use.
  10. '######################################
  11. %>
  12. <%
  13. If InitUpload() = True Then
  14. sAction = UCase(Trim(Request.QueryString("action")))
  15. Select Case sAction
  16. Case "LOCAL"
  17. Call DoCreateNewDir()
  18. Call DoLocal()
  19. Case "REMOTE"
  20. Call DoCreateNewDir()
  21. Call DoRemote()
  22. Case "SAVE"
  23. Call ShowForm()
  24. Call DoCreateNewDir()
  25. Call DoSave()
  26. Case Else
  27. Call ShowForm()
  28. End Select
  29. End If
  30. %>
  31. <script language="vb" runat="server">
  32. Dim sAction As String
  33. Dim sType As String, sStyleName As String, sLanguage As String
  34. Dim sAllowExt As String, nAllowSize As Integer, sUploadDir As String, nUploadObject As Integer, nAutoDir As Integer, sBaseUrl As String, sContentPath As String
  35. Dim sFileExt As String, sOriginalFileName As String, sSaveFileName As String, sPathFileName As String, nFileNum As Integer
  36. Dim nSLTFlag As Integer, nSLTMinSize As Integer, nSLTOkSize As Integer, nSYFlag As Integer, sSYText As String, sSYFontColor As String, nSYFontSize As Integer, sSYFontName As String, sSYPicPath As String, nSLTSYObject As Integer, sSLTSYExt As String, nSYMinSize As Integer, sSYShadowColor As String, nSYShadowOffset As Integer
  37. Sub ShowForm()
  38. Response.Write ("<HTML>" & _
  39. "<HEAD>" & _
  40. "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>" & _
  41. "<TITLE>eWebEditor</TITLE>" & _
  42. "<script language=""javascript"" src=""../dialog/dialog.js""></s" & "cript>" & _
  43. "<link href='../language/" & sLanguage & ".css' type='text/css' rel='stylesheet'>" & _
  44. "<link href='../dialog/dialog.css' type='text/css' rel='stylesheet'>" & _
  45. "</head>" & _
  46. "<body class=upload>")
  47. Response.Write ("<form action='?action=save&type=" & sType & "&style=" & sStyleName & "&language=" & sLanguage & "' method=post name=myform enctype='multipart/form-data'>" & _
  48. "<input type=file name=uploadfile size=1 style='width:100%' onchange='try{parent.doPreview();} catch(e){}'>" & _
  49. "</form>")
  50. Response.Write ("<script language=javascript>" & VBCrlf & _
  51. "" & VBCrlf & _
  52. "var sAllowExt = """ & sAllowExt & """;" & VBCrlf & _
  53. "" & VBCrlf & _
  54. "function CheckUploadForm() {" & VBCrlf & _
  55. " if (!IsExt(document.myform.uploadfile.value,sAllowExt)){" & VBCrlf & _
  56. " parent.UploadError('lang[""ErrUploadInvalidExt""]+"":'+sAllowExt+'""');" & VBCrlf & _
  57. " return false;" & VBCrlf & _
  58. " }" & VBCrlf & _
  59. " return true" & VBCrlf & _
  60. "}" & VBCrlf & _
  61. "" & VBCrlf & _
  62. "var oForm = document.myform ;" & VBCrlf & _
  63. "oForm.attachEvent(""onsubmit"", CheckUploadForm) ;" & VBCrlf & _
  64. "if (! oForm.submitUpload) oForm.submitUpload = new Array() ;" & VBCrlf & _
  65. "oForm.submitUpload[oForm.submitUpload.length] = CheckUploadForm ;" & VBCrlf & _
  66. "if (! oForm.originalSubmit) {" & VBCrlf & _
  67. " oForm.originalSubmit = oForm.submit ;" & VBCrlf & _
  68. " oForm.submit = function() {" & VBCrlf & _
  69. " if (this.submitUpload) {" & VBCrlf & _
  70. " for (var i = 0 ; i < this.submitUpload.length ; i++) {" & VBCrlf & _
  71. " this.submitUpload[i]() ;" & VBCrlf & _
  72. " }" & VBCrlf & _
  73. " }" & VBCrlf & _
  74. " this.originalSubmit() ;" & VBCrlf & _
  75. " }" & VBCrlf & _
  76. "}" & VBCrlf & _
  77. "" & VBCrlf & _
  78. "try {" & VBCrlf & _
  79. " parent.UploadLoaded();" & VBCrlf & _
  80. "}" & VBCrlf & _
  81. "catch(e){" & VBCrlf & _
  82. "}" & VBCrlf & _
  83. "" & VBCrlf & _
  84. "</s" & "cript>" & VBCrlf )
  85. Response.Write ("</body></html>")
  86. End Sub 
  87. Sub DoSave()
  88. Dim b
  89. Select Case nUploadObject
  90. Case 1
  91. b = DoUpload_ASPUpload()
  92. Case 2
  93. b = DoUpload_SAFileUP()
  94. Case 3
  95. b = DoUpload_LyfUpload()
  96. Case Else
  97. b = DoUpload_ASPDotNet()
  98. End Select
  99. If b = False Then Exit Sub
  100. Dim s_SmallImageFile As String, s_SmallImagePathFile As String, s_SmallImageScript As String
  101. s_SmallImageFile = getSmallImageFile(sSaveFileName)
  102. s_SmallImagePathFile = ""
  103. s_SmallImageScript = ""
  104. If makeImageSLT(sUploadDir, sSaveFileName, s_SmallImageFile) = True Then
  105. Call makeImageSY(sUploadDir, s_SmallImageFile)
  106. Call makeImageSY(sUploadDir, sSaveFileName)
  107. s_SmallImagePathFile = sContentPath & s_SmallImageFile
  108. s_SmallImageScript = "try{obj.addUploadFile('" & sOriginalFileName & "', '" & s_SmallImageFile & "', '" & s_SmallImagePathFile & "');} catch(e){} "
  109. Else
  110. s_SmallImageFile = ""
  111. Call makeImageSY(sUploadDir, sSaveFileName)
  112. End If
  113. sPathFileName = sContentPath & sSaveFileName
  114. Call OutScript("parent.UploadSaved('" & sPathFileName & "','" & s_SmallImagePathFile & "');var obj=parent.dialogArguments.dialogArguments;if (!obj) obj=parent.dialogArguments;try{obj.addUploadFile('" & sOriginalFileName & "', '" & sSaveFileName & "', '" & sPathFileName & "');} catch(e){} " & s_SmallImageScript)
  115. End Sub
  116. Sub DoLocal()
  117. Dim b
  118. Select Case nUploadObject
  119. Case 1
  120. b = DoUpload_ASPUpload()
  121. Case 2
  122. b = DoUpload_SAFileUP()
  123. Case 3
  124. b = DoUpload_LyfUpload()
  125. Case Else
  126. b = DoUpload_ASPDotNet()
  127. End Select
  128. If b = False Then Exit Sub
  129. sPathFileName = sContentPath & sSaveFileName
  130. Response.Write(sPathFileName)
  131. End Sub
  132. Sub makeImageSY(s_Path As String, s_File As String)
  133. If nSYFlag = 0 Then Exit Sub
  134. If isValidSLTSYExt(s_File) = False Then Exit Sub
  135. On Error Resume Next
  136. Dim nOriginalWidth
  137. Select Case nSLTSYObject
  138. Case 0
  139. Dim image As System.Drawing.Image = System.Drawing.Image.FromFile(Server.Mappath(s_Path & s_File))
  140. nOriginalWidth = image.Width
  141. If nSYMinSize > nOriginalWidth Then Exit Sub
  142. Dim bitmap As New System.Drawing.Bitmap(image.Width, image.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
  143. Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bitmap)
  144. g.DrawImage(image, 0, 0, image.Width, image.Height)
  145. If nSYFlag = 1 Then
  146. Dim f As System.Drawing.Font, b As System.Drawing.Brush
  147. f = new System.Drawing.Font(sSYFontName, nSYFontSize)
  148. b = new System.Drawing.SolidBrush(System.Drawing.ColorTranslator.FromHtml("#" & sSYShadowColor))
  149. g.DrawString(sSYText, f, b, 5+nSYShadowOffset, 5+nSYShadowOffset)
  150. b = new System.Drawing.SolidBrush(System.Drawing.ColorTranslator.FromHtml("#" & sSYFontColor))
  151. g.DrawString(sSYText, f, b, 5, 5)
  152. Else
  153. Dim copyImage As System.Drawing.Image = System.Drawing.Image.FromFile(Server.Mappath(sSYPicPath))
  154. g.DrawImage(copyImage, new System.Drawing.Rectangle(0, 0, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel)
  155. copyImage.Dispose()
  156. End If
  157. g.Dispose()
  158. image.Dispose()
  159. bitmap.Save(Server.Mappath(s_Path & s_File))
  160. bitmap.Dispose()
  161. Case Else
  162. Dim oImage, oLogo
  163. If IsObjInstalled("Persits.Jpeg") = False Then Exit Sub
  164. oImage = Server.CreateObject("Persits.Jpeg")
  165. oImage.Open (Server.Mappath(s_Path & s_File))
  166. nOriginalWidth = oImage.OriginalWidth
  167. If nSYMinSize > nOriginalWidth Then Exit Sub
  168. If nSYFlag = 1 Then
  169. oImage.Canvas.Font.Color = CInt("&H" & sSYFontColor)
  170. oImage.Canvas.Font.Family = sSYFontName
  171. 'oImage.Canvas.Font.Bold = True
  172. oImage.Canvas.Font.Size = nSYFontSize
  173. oImage.Canvas.Font.ShadowColor = CInt("&H" & sSYShadowColor)
  174. oImage.Canvas.Font.ShadowXOffset = nSYShadowOffset
  175. oImage.Canvas.Font.ShadowYOffset = nSYShadowOffset
  176. oImage.Canvas.Print (5, 5, sSYText)
  177. oImage.Save (Server.Mappath(s_Path & s_File))
  178. End If
  179. If nSYFlag = 2 Then
  180. oLogo = Server.CreateObject("Persits.Jpeg")
  181. oLogo.Open (Server.Mappath(sSYPicPath))
  182. oImage.DrawImage (0, 0, oLogo, 1, &HFFFFFF)
  183. oImage.SendBinary()
  184. oLogo = Nothing
  185. End If
  186. oImage = Nothing
  187. End Select
  188. End Sub
  189. Function makeImageSLT(s_Path As String, s_File As String, s_SmallFile As String)
  190. makeImageSLT = False
  191. If nSLTFlag = 0 Then Exit Function
  192. If isValidSLTSYExt(s_File) = False Then Exit Function
  193. On Error Resume Next
  194. Dim nOriginalWidth As Integer, nOriginalHeight As Integer, nWidth As Integer, nHeight As Integer
  195. Select Case nSLTSYObject
  196. Case 0
  197. Dim image As System.Drawing.Image = System.Drawing.Image.FromFile(Server.Mappath(s_Path & s_File))
  198. nOriginalWidth = image.Width
  199. nOriginalHeight = image.Height
  200. If nOriginalWidth < nSLTMinSize And nOriginalHeight < nSLTMinSize Then Exit Function
  201. If nOriginalWidth > nOriginalHeight Then
  202. nWidth = nSLTOkSize
  203. nHeight = (nSLTOkSize / nOriginalWidth) * nOriginalHeight
  204. Else
  205. nHeight = nSLTOkSize
  206. nWidth = (nSLTOkSize / nOriginalHeight) * nOriginalWidth
  207. End If
  208. Dim bitmap As New System.Drawing.Bitmap(nWidth, nHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
  209. Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bitmap)
  210. g.Clear(System.Drawing.Color.Transparent)
  211. g.DrawImage(image, new System.Drawing.Rectangle(0, 0, nWidth, nHeight))
  212. image.Dispose()
  213. Dim s_Ext As String, s_Mime As String
  214. s_Ext = LCase(Mid(s_File, InstrRev(s_File, ".")+1))
  215. Select Case s_Ext
  216. Case "png"
  217. s_Mime = "image/png"
  218. Case "tif", "tiff"
  219. s_Mime = "image/tiff"
  220. Case "bmp"
  221. s_Mime = "image/bmp"
  222. Case Else
  223. s_Mime = "image/jpeg"
  224. End Select
  225. Dim parameters As New System.Drawing.Imaging.EncoderParameters(1)
  226. parameters.Param(0) = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90)
  227. bitmap.Save(Server.Mappath(s_Path & s_SmallFile), GetCodecInfo(s_Mime), parameters)
  228. parameters.Dispose()
  229. g.Dispose()
  230. bitmap.Dispose()
  231. Case 1
  232. Dim oImage
  233. If IsObjInstalled("Persits.Jpeg") = False Then Exit Function
  234. oImage = Server.CreateObject("Persits.Jpeg")
  235. oImage.Open (Server.Mappath(s_Path & s_File))
  236. nOriginalWidth = oImage.OriginalWidth
  237. nOriginalHeight = oImage.OriginalHeight
  238. If nOriginalWidth < nSLTMinSize And nOriginalHeight < nSLTMinSize Then Exit Function
  239. If nOriginalWidth > nOriginalHeight Then
  240. nWidth = nSLTOkSize
  241. nHeight = (nSLTOkSize / nOriginalWidth) * nOriginalHeight
  242. Else
  243. nHeight = nSLTOkSize
  244. nWidth = (nSLTOkSize / nOriginalHeight) * nOriginalWidth
  245. End If
  246. oImage.Width = nWidth
  247. oImage.Height = nHeight
  248. oImage.Save (Server.Mappath(s_Path & s_SmallFile))
  249. oImage = Nothing
  250. End Select
  251. makeImageSLT = True
  252. End Function
  253. Function GetCodecInfo(s_Mime As String)
  254. Dim CodecInfo() As System.Drawing.Imaging.ImageCodecInfo = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()
  255. Dim ici As System.Drawing.Imaging.ImageCodecInfo
  256. For Each ici In CodecInfo
  257. If ici.MimeType = s_Mime Then
  258. GetCodecInfo = ici
  259. End If
  260. Next
  261. End Function
  262. Function isValidSLTSYExt(s_File)
  263. Dim b, i, aExt, sExt
  264. b = False
  265. sExt = LCase(Mid(s_File, InstrRev(s_File, ".")+1))
  266. aExt = Split(LCase(sSLTSYExt), "|")
  267. For i = 0 To UBound(aExt)
  268. If aExt(i) = sExt Then
  269. b = True
  270. Exit For
  271. End If
  272. Next
  273. isValidSLTSYExt = b
  274. End Function
  275. Function getSmallImageFile(s_File)
  276. Dim n
  277. n = InstrRev(s_File, ".")
  278. getSmallImageFile = Left(s_File, n-1) & "_s." & Mid(s_File, n+1)
  279. End Function
  280. Sub DoRemote()
  281. Dim sContent
  282. sContent = Request.Form("eWebEditor_UploadText")
  283. If sAllowExt <> "" Then
  284. sContent = ReplaceRemoteUrl(sContent, sAllowExt)
  285. End If
  286. Response.Write ("<HTML><HEAD><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'></head><body>" & _
  287. "<TITLE>eWebEditor</TITLE>" & _
  288. "<input type=hidden id=UploadText value=""" & inHTML(sContent) & """>" & _
  289. "</body></html>")
  290. Call OutScriptNoBack("parent.setHTML(UploadText.value);try{parent.addUploadFile('" & sOriginalFileName & "', '" & sSaveFileName & "', '" & sPathFileName & "');} catch(e){} parent.remoteUploadOK();")
  291. End Sub
  292. Sub DoCreateNewDir()
  293. Dim sCreateDir
  294. Select Case nAutoDir
  295. Case 1
  296. sCreateDir = Left(FormatTime(Now(), 4), 4)
  297. Case 2
  298. sCreateDir = Left(FormatTime(Now(), 4), 6)
  299. Case 3
  300. sCreateDir = Left(FormatTime(Now(), 4), 8)
  301. Case Else
  302. Exit Sub
  303. End Select
  304. sUploadDir = sUploadDir & sCreateDir & "/"
  305. sContentPath = sContentPath & sCreateDir & "/"
  306. Dim oDir As System.IO.Directory
  307. If oDir.Exists(Server.Mappath(sUploadDir)) = False Then
  308. oDir.CreateDirectory(Server.Mappath(sUploadDir))
  309. End If
  310. End Sub
  311. Function DoUpload_LyfUpload()
  312. DoUpload_LyfUpload = False
  313. On Error Resume Next
  314. Dim oUpload, sResult, sOriginalFile
  315. oUpload = Server.CreateObject("LyfUpload.UploadFile")
  316. oUpload.ExtName = Replace(sAllowExt, "|", ",")
  317. oUpload.MaxSize = nAllowSize*1024
  318. sOriginalFile = oUpload.Request("originalfile")
  319. sOriginalFileName = Mid(sOriginalFile, InStrRev(sOriginalFile, "") + 1)
  320. sFileExt = LCase(Mid(sOriginalFileName, InStrRev(sOriginalFileName, ".") + 1))
  321. If CheckValidExt(sFileExt) = False Then
  322. Exit Function
  323. End If
  324. sSaveFileName = GetRndFileName(sFileExt)
  325. sResult = oUpload.SaveFile("uploadfile", Server.Mappath(sUploadDir), True, sSaveFileName)
  326. Select Case sResult
  327. Case "0"
  328. Call OutScript("parent.UploadError('lang[""ErrUploadSizeLimit""]+"":" & nAllowSize & "KB""')")
  329. Exit Function
  330. Case ""
  331. Call OutScript("parent.UploadError('lang[""ErrUploadInvalidFile""]')")
  332. Exit Function
  333. Case "1"
  334. Call OutScript("parent.UploadError('lang[""ErrUploadInvalidExt""]+"":" & sAllowExt & """')")
  335. Exit Function
  336. End Select
  337. oUpload = Nothing
  338. DoUpload_LyfUpload = True
  339. End Function
  340. Function DoUpload_SAFileUp()
  341. DoUpload_SAFileUp = False
  342. On Error Resume Next
  343. Dim oFileUp
  344. oFileUp = Server.CreateObject("SoftArtisans.FileUp")
  345. 'oFileUp.MaxBytes = nAllowSize*1024
  346. oFileUp.Path = Server.MapPath(sUploadDir)
  347. If oFileUp.Form("uploadfile").TotalBytes > nAllowSize*1024 Then
  348. Err.Clear
  349. Call OutScript("parent.UploadError('lang[""ErrUploadSizeLimit""]+"":" & nAllowSize & "KB""')")
  350. Exit Function
  351. End If
  352. If oFileUp.Form("uploadfile").IsEmpty Then
  353. Call OutScript("parent.UploadError('lang[""ErrUploadInvalidFile""]')")
  354. Exit Function
  355. End If
  356. Dim sShortFileName
  357. sShortFileName = oFileUp.Form("uploadfile").ShortFileName
  358. sFileExt = LCase(Mid(sShortFileName, InStrRev(sShortFileName, ".") + 1))
  359. If CheckValidExt(sFileExt) = False Then
  360. Exit Function
  361. End If
  362. sOriginalFileName = sShortFileName
  363. sSaveFileName = GetRndFileName(sFileExt)
  364. oFileUp.Form("uploadfile").SaveAs(Server.Mappath(sUploadDir & sSaveFileName))
  365. oFileUp = Nothing
  366. DoUpload_SAFileUp = True
  367. End Function
  368. Function DoUpload_ASPUpload()
  369. DoUpload_ASPUpload = False
  370. On Error Resume Next
  371. Dim oUpload, oFile, nCount
  372. oUpload = Server.CreateObject("Persits.Upload")
  373. oUpload.SetMaxSize(nAllowSize*1024, True)
  374. nCount = oUpload.Save
  375. If nCount < 1 Then
  376. Call OutScript("parent.UploadError('lang[""ErrUploadInvalidFile""]')")
  377. Exit Function
  378. End If
  379. If Err.Number = 8 Then
  380. Err.Clear
  381. Call OutScript("parent.UploadError('lang[""ErrUploadSizeLimit""]+"":" & nAllowSize & "KB""')")
  382. Exit Function
  383. End If
  384. oFile = oUpload.Files("uploadfile")
  385. sFileExt = LCase(Mid(oFile.Ext, 2))
  386. If CheckValidExt(sFileExt) = False Then
  387. Exit Function
  388. End If
  389. sOriginalFileName = oFile.FileName
  390. sSaveFileName = GetRndFileName(sFileExt)
  391. oFile.SaveAs (Server.Mappath(sUploadDir & sSaveFileName))
  392. oFile = Nothing
  393. oUpload = Nothing
  394. DoUpload_ASPUpload = True
  395. End Function
  396. Function DoUpload_ASPDotNet()
  397. DoUpload_ASPDotNet = False
  398. On Error Resume Next
  399. Dim oFiles As System.Web.HttpFileCollection = System.Web.HttpContext.Current.Request.Files
  400. Dim postedFile As System.Web.HttpPostedFile = oFiles(0)
  401. sOriginalFileName = System.IO.Path.GetFileName(postedFile.FileName)
  402. sFileExt = System.IO.Path.GetExtension(sOriginalFileName)
  403. sFileExt = LCase(Mid(sFileExt, 2))
  404. If CheckValidExt(sFileExt) = False Then
  405. Exit Function
  406. End If
  407. sSaveFileName = GetRndFileName(sFileExt)
  408. If PostedFile.ContentLength > nAllowSize*1024 Then
  409. Call OutScript("parent.UploadError('lang[""ErrUploadSizeLimit""]+"":" & nAllowSize & "KB""')")
  410. Exit Function
  411. End If
  412. Dim str_Mappath
  413. str_Mappath = Server.Mappath(sUploadDir & sSaveFileName)
  414. sFileExt = LCase(Mid(str_Mappath, InstrRev(str_Mappath, ".") + 1))
  415. If CheckValidExt(sFileExt) = False Then
  416. Exit Function
  417. End If
  418. postedFile.SaveAs(str_Mappath)
  419. oFiles = Nothing
  420. DoUpload_ASPDotNet = True
  421. End Function
  422. Function GetRndFileName(sExt)
  423. Dim sRnd
  424. Randomize
  425. sRnd = Int(900 * Rnd) + 100
  426. GetRndFileName = FormatTime(now, 5) & sRnd & "." & sExt
  427. End Function
  428. Sub OutScript(str)
  429. If sAction <> "LOCAL" Then
  430. Response.Write ("<script language=javascript>" & str & ";history.back()</s" & "cript>")
  431. End If
  432. Response.End
  433. End Sub
  434. Sub OutScriptNoBack(str)
  435. Response.Write ("<script language=javascript>" & str & "</s" & "cript>")
  436. End Sub
  437. Function CheckValidExt(sExt)
  438. Dim b, i, aExt
  439. b = False
  440. aExt = Split(sAllowExt, "|")
  441. For i = 0 To UBound(aExt)
  442. If LCase(aExt(i)) = sExt Then
  443. b = True
  444. Exit For
  445. End If
  446. Next
  447. If b = False Then
  448. Call OutScript("parent.UploadError('lang[""ErrUploadInvalidExt""]+"":" & sAllowExt & """')")
  449. Exit Function
  450. End If
  451. CheckValidExt = b
  452. End Function
  453. Function InitUpload()
  454. InitUpload = False
  455. sType = UCase(Trim(Request.QueryString("type")))
  456. sStyleName = Trim(Request.QueryString("style"))
  457. sLanguage = Trim(Request.QueryString("language"))
  458. Dim i, aStyleConfig, bValidStyle
  459. bValidStyle = False
  460. For i = 1 To Ubound(aStyle)
  461. aStyleConfig = Split(aStyle(i), "|||")
  462. If Lcase(sStyleName) = Lcase(aStyleConfig(0)) Then
  463. bValidStyle = True
  464. Exit For
  465. End If
  466. Next
  467. If bValidStyle = False Then
  468. Call OutScript("parent.UploadError('lang[""ErrInvalidStyle""]')")
  469. Exit Function
  470. End If
  471. sBaseUrl = aStyleConfig(19)
  472. nUploadObject = CInt(aStyleConfig(20))
  473. nAutoDir = CInt(aStyleConfig(21))
  474. sUploadDir = aStyleConfig(3)
  475. If Left(sUploadDir, 1) <> "/" Then
  476. sUploadDir = "../" & sUploadDir
  477. End If
  478. Select Case sBaseUrl
  479. Case "0"
  480. sContentPath = aStyleConfig(23)
  481. Case "1"
  482. sContentPath = RelativePath2RootPath(sUploadDir)
  483. Case "2"
  484. sContentPath = RootPath2DomainPath(RelativePath2RootPath(sUploadDir))
  485. End Select
  486. Select Case sType
  487. Case "REMOTE"
  488. sAllowExt = aStyleConfig(10)
  489. nAllowSize = CInt(aStyleConfig(15))
  490. Case "FILE"
  491. sAllowExt = aStyleConfig(6)
  492. nAllowSize = CInt(aStyleConfig(11))
  493. Case "MEDIA"
  494. sAllowExt = aStyleConfig(9)
  495. nAllowSize = CInt(aStyleConfig(14))
  496. Case "FLASH"
  497. sAllowExt = aStyleConfig(7)
  498. nAllowSize = CInt(aStyleConfig(12))
  499. Case Else
  500. sAllowExt = aStyleConfig(8)
  501. nAllowSize = CInt(aStyleConfig(13))
  502. End Select
  503. nSLTFlag = CInt(aStyleConfig(29))
  504. nSLTMinSize = CInt(aStyleConfig(30))
  505. nSLTOkSize = CInt(aStyleConfig(31))
  506. nSYFlag = CInt(aStyleConfig(32))
  507. sSYText = aStyleConfig(33)
  508. sSYFontColor = aStyleConfig(34)
  509. nSYFontSize = CInt(aStyleConfig(35))
  510. sSYFontName = aStyleConfig(36)
  511. sSYPicPath = aStyleConfig(37)
  512. nSLTSYObject = CInt(aStyleConfig(38))
  513. sSLTSYExt = aStyleConfig(39)
  514. nSYMinSize = CInt(aStyleConfig(40))
  515. sSYShadowColor = aStyleConfig(41)
  516. nSYShadowOffset = CInt(aStyleConfig(42))
  517. InitUpload = True
  518. End Function
  519. Function RelativePath2RootPath(url)
  520. Dim sTempUrl
  521. sTempUrl = url
  522. If Left(sTempUrl, 1) = "/" Then
  523. RelativePath2RootPath = sTempUrl
  524. Exit Function
  525. End If
  526. Dim sWebEditorPath
  527. sWebEditorPath = Request.ServerVariables("SCRIPT_NAME")
  528. sWebEditorPath = Left(sWebEditorPath, InstrRev(sWebEditorPath, "/") - 1)
  529. Do While Left(sTempUrl, 3) = "../"
  530. sTempUrl = Mid(sTempUrl, 4)
  531. sWebEditorPath = Left(sWebEditorPath, InstrRev(sWebEditorPath, "/") - 1)
  532. Loop
  533. RelativePath2RootPath = sWebEditorPath & "/" & sTempUrl
  534. End Function
  535. Function RootPath2DomainPath(url)
  536. Dim sHost, sPort
  537. sHost = Split(Request.ServerVariables("SERVER_PROTOCOL"), "/")(0) & "://" & Request.ServerVariables("HTTP_HOST")
  538. sPort = Request.ServerVariables("SERVER_PORT")
  539. If sPort <> "80" Then
  540. sHost = sHost & ":" & sPort
  541. End If
  542. RootPath2DomainPath = sHost & url
  543. End Function
  544. Function ReplaceRemoteUrl(sHTML, sExt)
  545. Dim s_Content
  546. s_Content = sHTML
  547. If IsObjInstalled("Microsoft.XMLHTTP") = False then
  548. ReplaceRemoteUrl = s_Content
  549. Exit Function
  550. End If
  551. Dim SaveFileName, SaveFileType
  552. Dim re As Regex
  553. Dim RemoteFile As MatchCollection
  554. Dim RemoteFileurl As Match
  555. Dim strSearchPattern As String
  556. strSearchPattern = "((http|https|ftp|rtsp|mms):(//|\\){1}(([A-Za-z0-9_-])+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})([^ fnrtv""'>]*/)(([^ fnrtv""'>])+[.]{1}(" & sExt & ")))"
  557. RemoteFile = re.Matches(s_Content, strSearchPattern, RegexOptions.IgnoreCase)
  558. Dim a_RemoteUrl(), n, i, bRepeat
  559. n = 0
  560. ' to no repeat array
  561. For Each RemoteFileurl in RemoteFile
  562. If n = 0 Then
  563. n = n + 1
  564. Redim a_RemoteUrl(n)
  565. a_RemoteUrl(n) = RemoteFileurl.Value.ToString
  566. Else
  567. bRepeat = False
  568. For i = 1 To UBound(a_RemoteUrl)
  569. If UCase(RemoteFileurl.Value.ToString) = UCase(a_RemoteUrl(i)) Then
  570. bRepeat = True
  571. Exit For
  572. End If
  573. Next
  574. If bRepeat = False Then
  575. n = n + 1
  576. Redim Preserve a_RemoteUrl(n)
  577. a_RemoteUrl(n) = RemoteFileurl.Value.ToString
  578. End If
  579. End If
  580. Next
  581. ' start replace
  582. nFileNum = 0
  583. For i = 1 To n
  584. SaveFileType = Mid(a_RemoteUrl(i), InstrRev(a_RemoteUrl(i), ".") + 1)
  585. SaveFileName = GetRndFileName(SaveFileType)
  586. If SaveRemoteFile(SaveFileName, a_RemoteUrl(i)) = True Then
  587. nFileNum = nFileNum + 1
  588. If nFileNum > 1 Then
  589. sOriginalFileName = sOriginalFileName & "|"
  590. sSaveFileName = sSaveFileName & "|"
  591. sPathFileName = sPathFileName & "|"
  592. End If
  593. sOriginalFileName = sOriginalFileName & Mid(a_RemoteUrl(i), InstrRev(a_RemoteUrl(i), "/") + 1)
  594. sSaveFileName = sSaveFileName & SaveFileName
  595. sPathFileName = sPathFileName & sContentPath & SaveFileName
  596. s_Content = Replace(s_Content, a_RemoteUrl(i), sContentPath & SaveFileName, 1, -1, 1)
  597. End If
  598. Next
  599. ReplaceRemoteUrl = s_Content
  600. End Function
  601. Function SaveRemoteFile(s_LocalFileName, s_RemoteFileUrl)
  602. Dim Ads, Retrieval, GetRemoteData
  603. Dim bError
  604. bError = False
  605. SaveRemoteFile = False
  606. On Error Resume Next
  607. Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
  608. With Retrieval
  609. .Open ("Get", s_RemoteFileUrl, False, "", "")
  610. .Send
  611. GetRemoteData = .ResponseBody
  612. End With
  613. Retrieval = Nothing
  614. If GetRemoteData.length > nAllowSize*1024 Then
  615. bError = True
  616. Else
  617. Ads = Server.CreateObject("Adodb.Stream")
  618. With Ads
  619. .Type = 1
  620. .Open
  621. .Write (GetRemoteData)
  622. .SaveToFile (Server.MapPath(sUploadDir & s_LocalFileName), 2)
  623. .Cancel()
  624. .Close()
  625. End With
  626. Ads=nothing
  627. End If
  628. If Err.Number = 0 And bError = False Then
  629. SaveRemoteFile = True
  630. Else
  631. Err.Clear
  632. End If
  633. End Function
  634. Function IsObjInstalled(strClassString)
  635. On Error Resume Next
  636. IsObjInstalled = False
  637. Err.Number = 0
  638. Dim xTestObj
  639. xTestObj = Server.CreateObject(strClassString)
  640. If 0 = Err.Number Then IsObjInstalled = True
  641. xTestObj = Nothing
  642. Err.Number = 0
  643. End Function
  644. Function inHTML(str)
  645. Dim sTemp
  646. sTemp = str
  647. inHTML = ""
  648. If IsDBNull(sTemp) = True Then
  649. Exit Function
  650. End If
  651. sTemp = Replace(sTemp, "&", "&amp;")
  652. sTemp = Replace(sTemp, "<", "&lt;")
  653. sTemp = Replace(sTemp, ">", "&gt;")
  654. sTemp = Replace(sTemp, Chr(34), "&quot;")
  655. inHTML = sTemp
  656. End Function
  657. Function FormatTime(s_Time, n_Flag)
  658. Dim y, m, d, h, mi, s
  659. FormatTime = ""
  660. If IsDate(s_Time) = False Then Exit Function
  661. y = cstr(year(s_Time))
  662. m = cstr(month(s_Time))
  663. If len(m) = 1 Then m = "0" & m
  664. d = cstr(day(s_Time))
  665. If len(d) = 1 Then d = "0" & d
  666. h = cstr(hour(s_Time))
  667. If len(h) = 1 Then h = "0" & h
  668. mi = cstr(minute(s_Time))
  669. If len(mi) = 1 Then mi = "0" & mi
  670. s = cstr(second(s_Time))
  671. If len(s) = 1 Then s = "0" & s
  672. Select Case n_Flag
  673. Case 1
  674. ' yyyy-mm-dd hh:mm:ss
  675. FormatTime = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
  676. Case 2
  677. ' yyyy-mm-dd
  678. FormatTime = y & "-" & m & "-" & d
  679. Case 3
  680. ' hh:mm:ss
  681. FormatTime = h & ":" & mi & ":" & s
  682. Case 4
  683. ' yyyymmdd
  684. FormatTime = y & m & d
  685. Case 5
  686. ' yyyymmddhhmmss
  687. FormatTime = y & m & d & h & mi & s
  688. End Select
  689. End Function
  690. </script>