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 2 Next »

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

upload.asp
 

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)

    If Not result = 0 Then
        Response.write "Error : " & result
    Else
        '변환이 완료되면 원본문서 삭제
        DeleteExistFile(filePath)
    End If

    Set wshShell = nothing
    Set Upload = Nothing


    'document.word.pb 파일을 serialized해서 전달
    Dim bin
    bin = ReadBinaryFile(outputPath & "\" & "document.word.pb")

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

    '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