Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

파일 업로드에는 TABS Upload5를 사용하였습니다.

실제 ASP 연동부분 작업시에는 운영환경에서 사용하시던 업로드 컴포넌트를 그냥 사용하시고 관련 코드를 수정해주시면 됩니다.

1. 이미지, 동영상, 파일 업로드

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, MS Word, LibreOffice 문서 임포트


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해서 전달
    'v2.3.0 부터는 파일명이 document.word.pb에서 document.pb로 변경됨
    Dim bin
    bin = ReadBinaryFile(outputPath & "\" & "document.pb")

    'pb파일은 읽어들인 후 삭제
    DeleteExistFile(outputPath & "\" & "document.pb")
    
    '결과를 json 형태로 반환
    Response.ContentType = "application/json"
    Response.write("{""importPath"":""" & relativeOutputPath & """, ""serializedData"":" & BinaryToString(bin) & "}")

    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 
        
        'Stream object 생성
        Dim BinaryStream 
        Set BinaryStream = CreateObject("ADODB.Stream") 
        
        'Stream type 정의 
        BinaryStream.Type = adTypeBinary 

        '스트림 열기 
        BinaryStream.Open 
        
        BinaryStream.Position = 0 
        
        '파일을 스트림으로 열기
        BinaryStream.LoadFromFile FileName 
        

        '스트림 읽기
        ReadBinaryFile = BinaryStream.Read 
        
        BinaryStream.Close
        Set BinaryStream = Nothing
    End Function 

    
    Function BinaryToString(Binary)
        Dim I, S
        S = "["
        For I = 17 To LenB(Binary)
            S = S & CStr(AscB(MidB(Binary, I, 1)))
            If I < LenB(Binary) Then
                S = S & ","
            End If
        Next
        S = S & "]"
        BinaryToString = S
    End Function 
%>
  • No labels