본문 바로가기

Dev/ASP

[ASP] FTP 이용해서 파일 업로드/다운로드 하기

반응형

웹으로 FTP를 이용해서 파일 업로드/다운로드 할 수 있는 기능인데.

Webshell이나 ASPExec 같은 것들은 보안이나 권한등의 문제가 생길 수 있으므로.... FTP를 이용해서 하는 방법.

 

첨부된 DLL을 regsvr32 aspftp.dll 을 이용해서 먼저 등록해준다.

 그리고 나서 아래의 소스를 이용해서 File Upload/Download를 진행하면 된다.

  

<%
ACCESS_TYPE_PRECONFIG = 0
ACCESS_TYPE_DIRECT = 1
ACCESS_TYPE_PROXY = 2
 
TRANSFER_TYPE_ASCII = 1
TRANSFER_TYPE_BINARY = 2
 
FILE_ACCESS_WRITE = 1
FILE_ACCESS_READ = 2
 
ATTRIBUTE_READONLY = 1
ATTRIBUTE_HIDDEN = 2
ATTRIBUTE_SYSTEM = 4
ATTRIBUTE_DIRECTORY = 16
ATTRIBUTE_ARCHIVE = 32
ATTRIBUTE_NORMAL = 128
ATTRIBUTE_TEMPORARY = 256
ATTRIBUTE_COMPRESSED = 2048
ATTRIBUTE_OFFLINE = 4096
 
Function ftpUpload(sourceFile, copyFile) ' Upload Function
    Dim objFTP
    Dim strMsg
 
    Set objFTP = Server.CreateObject("NIBLACK.ASPFTP")
 
    objFTP.sServerName = "server"
    objFTP.sUserID = "id"
    objFTP.sPassword = "password"
    objFTP.bPassiveMode = False 'True 'Passive Mode
 
    If objFTP.bConnect Then
        objFTP.lTransferType = TRANSFER_TYPE_ASCII
 
        If objFTP.bPutFile(sourceFile, copyFile) Then ' Success
            strMsg = "Put Successful!"
        Else
            strMsg = "Put Failed: " & objFTP.sError ' Fail
        End If
    Else
        strMsg = "Connection Failed: " & objFTP.sError
    End If
 
    Set objFTP = Nothing
 
    ftpUpload = strMsg
End Function
 
Function ftpDownload(sourceFile, copyFile) ' Download Function
    Dim objFTP
    Dim strMsg
 
    Set objFTP = Server.CreateObject("NIBLACK.ASPFTP")
 
    objFTP.sServerName = "server"
    objFTP.sUserID = "id"
    objFTP.sPassword = "password"
 
    If objFTP.bConnect Then
        objFTP.lTransferType = TRANSFER_TYPE_ASCII
 
        If objFTP.bGetFile(copyFile, sourceFile) Then ' Success
            strMsg = "Get Successful!"
        Else
            strMsg = "Get Failed: " & objFTP.sError ' Fail
        End If
    Else
        strMsg = "Connection Failed: " & objFTP.sError
    End If
 
    Set objFTP = Nothing
 
    ftpDownload = strMsg
End Function
 
' FTP FILE UPLOAD
ftpUploadResult = ftpUpload("C:\uploadfile.txt","Folder\uploadFile.txt")
 
' FTP FILE DOWNLOAD
ftpDownloadResult = ftpDownload("Folder\uploadFile.txt","C:\uploadfile.txt")
%>

' FTP FILE UPLOAD
ftpUploadResult = ftpUpload("C:\uploadfile.txt","Folder\uploadFile.txt")
이 소스에서 Folder를 지정하지 않으면 FTP 설정 Root에 저장된다.


aspftp.dll


반응형