1. 이미지, 동영상, 파일 업로드
주의사항
가이드로 제공되는 아래 코드 중 파일 업로드 부분은 샘플 코드로서 보안 관련 처리가 미흡합니다.
파일 업로드 부분은 프로젝트 내부에서 사용하시는 부분을 그대로 사용하시고 아래 코드를 참고하셔서 연동 부분을 처리해주세요.
파일 업로드에는 TABS Upload5를 사용하였습니다. 실제 ASP 연동부분 작업시에는 운영환경에서 사용하시던 업로드 컴포넌트를 그냥 사용하시면 됩니다.
import.asp
<%@ 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
'저장된 파일 경로 (경로는 제외)
fileName = Upload.Form("file").ShortSaveName
'결과를 json 형태로 반환
Response.ContentType = "application/json"
Response.write("{""uploadPath"":""/upload/" & fileName & """}")
%>
2. HWP, Word, Excel 문서 임포트
주의사항
가이드로 제공되는 아래 코드 중 파일 업로드 부분은 샘플 코드로서 보안 관련 처리가 미흡합니다.
파일 업로드 부분은 프로젝트 내부에서 사용하시는 부분을 그대로 사용하시고 아래 코드를 참고하셔서 연동 부분을 처리해주세요.
파일 업로드에는 TABS Upload5를 사용하였습니다. 실제 ASP 연동부분 작업시에는 운영환경에서 사용하시던 업로드 컴포넌트를 그냥 사용하시면 됩니다.
import.asp
<%@ 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 생성 (unique path)
uuid = CreateGUID()
outputPath = "C:\inetpub\wwwroot\output\" & uuid
relativeOutputPath = "/output/" & uuid
'문서변환
Dim wshShell, strCmd, result
'Set wshShell = CreateObject( "WScript.Shell" )
strCmd = CONVERTER & " -pz -f " & FONTS & " """ & filePath & """ " & outputPath & " " & WORK
'result = wshShell.Run(strCmd, 0, true)
result = Exec(strCmd, 1)
If Not result = 0 Then
Response.write "Error : " & result
Else
'변환이 완료되면 원본문서 삭제
DeleteExistFile(filePath)
End If
Set wshShell = nothing
Set Upload = Nothing
'document.pb 파일을 serialized해서 전달
Dim binText
binText = ReadBinaryFile(outputPath & "\" & "document.pb")
'pb파일은 읽어들인 후 삭제
DeleteExistFile(outputPath & "\" & "document.pb")
'결과를 json 형태로 반환
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
'UUID 생성
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
Const adTypeText = 2
'Create Stream object
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
Dim bin, str, cnt
'Specify stream type - we want To get binary data.
BinaryStream.Type = adTypeBinary
'Open the stream
BinaryStream.Open
'Load the file data from disk To stream object
BinaryStream.Position = 0 'Set the stream position to the start
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)
'Antonin Foller, http://www.motobit.com
'Optimized version of a simple BinaryToString algorithm.
Dim cl1, cl2, cl3, pl1, pl2, pl3
Dim L
cl1 = startPosition '1 or 17
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 & ","
End if
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
%>