ASP (Classic) Example
Caution
For server security, please refer to the link below when handling this work.
[Software Security Weakness Diagnosis Guide]
1. Image / Video / File Upload
Caution
The file-upload portion of the sample code below is intentionally minimal and lacks proper security handling.
For the file-upload portion, use what is already in place inside your project, and refer to the code below for the integration portion only.
The file upload uses TABS Upload5. For an actual ASP integration, use the upload component already deployed in your production environment.
<%@ CodePage=65001 Language=VBScript %>
<% Option Explicit %>
<%
On Error Resume Next
Dim UPLOAD_PATH
UPLOAD_PATH = "C:\inetpub\wwwroot\upload"
Dim Upload, fileName
Set Upload = Server.CreateObject("TABSUpload4.Upload")
Upload.CodePage = 65001
Upload.Start "C:\TEMP"
Upload.Save UPLOAD_PATH, False
' Saved file name (without path)
fileName = Upload.Form("file").ShortSaveName
Response.ContentType = "application/json"
Response.write("{""uploadPath"":""/upload/" & fileName & """}")
%>
2. HWP / Word / Excel Document Import
Caution
The file-upload portion of the sample code below is intentionally minimal and lacks proper security handling.
For the file-upload portion, use what is already in place inside your project, and refer to the code below for the integration portion only.
The file upload uses TABS Upload5. For an actual ASP integration, use the upload component already deployed in your production environment.
<%@ CodePage=65001 Language=VBScript %>
<% Option Explicit %>
<%
On Error Resume Next
Dim CONVERTER, FONTS, WORK, UPLOAD_PATH
CONVERTER = "C:\workspace\seimporter\sedocConverter\sedocConverter.exe"
FONTS = "C:\workspace\seimporter\fonts"
WORK = "C:\workspace\seimporter\tmp"
UPLOAD_PATH = "C:\inetpub\wwwroot\upload"
Dim filePath, outputPath, uuid, relativeOutputPath
Dim Upload
Set Upload = Server.CreateObject("TABSUpload4.Upload")
Upload.CodePage = 65001
Upload.Start "C:\TEMP"
Upload.Save UPLOAD_PATH, False
filePath = Upload.Form("file").SaveName
uuid = CreateGUID()
outputPath = "C:\inetpub\wwwroot\output\" & uuid
relativeOutputPath = "/output/" & uuid
' Run document conversion
Dim wshShell, strCmd, result
strCmd = CONVERTER & " -pz -f " & FONTS & " """ & filePath & """ " & outputPath & " " & WORK
result = Exec(strCmd, 1)
If Not result = 0 Then
Response.write "Error : " & result
Else
DeleteExistFile(filePath) ' delete original after success
End If
Set wshShell = nothing
Set Upload = Nothing
' Read document.pb, serialize, then delete the .pb file
Dim binText
binText = ReadBinaryFile(outputPath & "\" & "document.pb")
DeleteExistFile(outputPath & "\" & "document.pb")
Response.ContentType = "application/json"
Response.write("{""importPath"":""" & relativeOutputPath & """, ""serializedData"":" & binText & "}")
Function Exec(c, t)
Dim s, e : Set s = CreateObject("WScript.Shell") : Set e = s.Exec(c)
Do While e.Status = 0
Call s.Run("waitfor /t 1 OneSecond", 0, True)
t = t - 1
If 0 >= t Then
Call s.Run("taskkill /t /f /pid " & e.ProcessId, 0, True)
Exit Do
End If
Loop
Set Exec = e
End Function
Function CreateGUID()
Dim tmpTemp
tmpTemp = Right(String(4,48) & Year(Now()),4)
tmpTemp = tmpTemp & Right(String(4,48) & Month(Now()),2)
tmpTemp = tmpTemp & Right(String(4,48) & Day(Now()),2)
tmpTemp = tmpTemp & Right(String(4,48) & Hour(Now()),2)
tmpTemp = tmpTemp & Right(String(4,48) & Minute(Now()),2)
tmpTemp = tmpTemp & Right(String(4,48) & Second(Now()),2)
CreateGUID = tmpTemp
End Function
Function DeleteExistFile(filePath)
Dim fso, result
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filePath) Then
fso.DeleteFile(filePath)
result = 1
Else
result = 0
End If
DeleteExistFile = result
End Function
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
Dim bin, str, cnt
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.Position = 0
BinaryStream.LoadFromFile FileName
cnt = 1
Do
bin = BinaryStream.Read(1024)
if Not isNull(bin) then
if cnt = 1 then
str = str & BinaryToString(bin, 17)
Else
str = str & "," & BinaryToString(bin, 1)
end if
cnt = cnt + 1
end if
Loop While Not IsNull(bin)
ReadBinaryFile = "[" & str & "]"
BinaryStream.Close
Set BinaryStream = Nothing
End Function
Function BinaryToString(Binary, startPosition)
' Optimized binary-to-CSV string for embedding into JSON.
Dim cl1, cl2, cl3, pl1, pl2, pl3, L
cl1 = startPosition
cl2 = 1
cl3 = 1
L = LenB(Binary)
Do While cl1 <= L
pl3 = pl3 & CStr(AscB(MidB(Binary,cl1,1)))
If cl1 < L Then pl3 = pl3 & ","
cl1 = cl1 + 1
cl3 = cl3 + 1
If cl3 > 300 Then
pl2 = pl2 & pl3
pl3 = "" : cl3 = 1 : cl2 = cl2 + 1
If cl2 > 200 Then
pl1 = pl1 & pl2
pl2 = "" : cl2 = 1
End If
End If
Loop
BinaryToString = pl1 & pl2 & pl3
End Function
%>