파일명 불러오기

ASP 2014. 3. 17. 15:28


<%
 '// 파일명 불러오기
 file_name  = request.servervariables("PATH_INFO")    ' 경로 포함
 aryFname  = Split(file_name, "/")
 d_name   = aryFname(UBound(aryFname) - 1)            ' 파일 명
 f_name   = Mid(file_name, InstrRev(file_name, "/") + 1) ' 확장자 포함 파일 명
 
%>

'ASP' 카테고리의 다른 글

asp fso  (0) 2014.02.25
asp 노캐쉬  (0) 2013.10.29
엑셀전환시 <br>태그  (0) 2013.10.28
ABCUpload 이용해서 파일 업로드 및 다운로드  (0) 2013.10.26
폴더검색 fso  (0) 2013.10.24
Posted by 초보용
,

asp fso

ASP 2014. 2. 25. 09:02

Function createDir(dir)'디렉토리 생성
 Dim Fso, strDir
 strDir = server.MapPath("\")& dir
 Set Fso = Server.CreateObject("Scripting.FileSystemObject") '파일객체 생성
 If Not Fso.FolderExists(strDir) Then '폴더가 존재하지 않으면
  Fso.CreateFolder(strDir) '폴더를 생성
  createDir = True
 Else
  createDir = False
 End If
 Set Fso = nothing
End Function


Function deleteDir(dir)'디렉토리 삭제
 Dim Fso, strDir
 strDir = server.MapPath("\")& dir
 Set Fso = Server.CreateObject("Scripting.FileSystemObject") '파일객체 생성
 If Fso.FolderExists(strDir) Then '폴더가 존재하면
  fso.DeleteFolder(strDir) '폴더를 삭제
  deleteDir = True
 Else
  deleteDir = False
 End If
 Set Fso = nothing
End Function

Function copyDir(dir,cdir)'디렉토리 복사
 Dim Fso, strDir ,strcDir
 strDir = server.MapPath("\")& dir
 strcDir = server.MapPath("\")& cdir
 
 Set Fso = Server.CreateObject("Scripting.FileSystemObject") '파일객체 생성
 If Fso.FolderExists(strcDir) Then '폴더가 존재하면 해당폴더로 복사
  Fso.CopyFolder strDir,strcDir
  copyDir = True
 Else
  copyDir = False
 End If
 
 Set Fso = nothing
End Function

'ASP' 카테고리의 다른 글

파일명 불러오기  (0) 2014.03.17
asp 노캐쉬  (0) 2013.10.29
엑셀전환시 <br>태그  (0) 2013.10.28
ABCUpload 이용해서 파일 업로드 및 다운로드  (0) 2013.10.26
폴더검색 fso  (0) 2013.10.24
Posted by 초보용
,

asp 노캐쉬

ASP 2013. 10. 29. 09:49

Response.Expires = -1
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "chche-control", "private"
Response.CacheControl = "no-cache"


Response.Expires = [(날짜) 혹은 (기간)]

브라우저에서 캐쉬된 페이지의 만료를 지정합니다.

페이지가 만료되기 전에 동일 페이지가 호출 될 경우 캐쉬된 페이지가 호출 됩니다.

기간 단위는 분 입니다. (-1)은 즉시 만료

 

Response.ExpiresAbsolute = [(날짜)(시간)]

Expires와 동일한 역할을 수행 하나 날짜와 시간까지 지정이 가능합니다.

 

Response.CacheControl = [(TRUE) 혹은 (FALSE)]

서버와 클라이언트 사이에는 응답시간 단축을 위하여 Proxy Server 가 존재할 수 있습니다.

CacheControl 을 사용하여 이러한 캐시의 사용 여부를 지정 합니다.

 

Response.AddHeader "pragma","no-cache"
Response.Expires/ExpiresAbsolute 와 동일한 기능을 수행합니다.

페이지의 만료시간을 헤더를 지정하여 클라이언트로 전송합니다.

 

Response.AddHeader "chche-control", "private"
Response.Expires/ExpiresAbsolute 와 동일한 기능을 수행합니다.

Proxy Server 를 이용한 캐시 사용 여부를 헤더를 지정하여 클라이언트로 전송합니다.

 

'ASP' 카테고리의 다른 글

파일명 불러오기  (0) 2014.03.17
asp fso  (0) 2014.02.25
엑셀전환시 <br>태그  (0) 2013.10.28
ABCUpload 이용해서 파일 업로드 및 다운로드  (0) 2013.10.26
폴더검색 fso  (0) 2013.10.24
Posted by 초보용
,

엑셀전환시 <br>태그

ASP 2013. 10. 28. 12:53
엑셀전환시 <br>태그를 alt + enter 값으로 변경해주는 css다.
<style>
br
 {mso-data-placement:same-cell;}
</style>

 

'ASP' 카테고리의 다른 글

asp fso  (0) 2014.02.25
asp 노캐쉬  (0) 2013.10.29
ABCUpload 이용해서 파일 업로드 및 다운로드  (0) 2013.10.26
폴더검색 fso  (0) 2013.10.24
asp 모든폼 갖고오기  (0) 2013.10.24
Posted by 초보용
,

출처 : http://blog.daum.net/thecoolman/3797336

 


 

아래 내용을 그대로 가져가서 사용하면 된다.

기본적인 내용은 주석처리 되어 있으니, 사용하는데 별 어려움이 없을 것으로 생각된다.

////////////////////////////////////////////////////////////////////////////////////
<%
'파일업로드 기본 설정
Response.Expires = -10000
Server.ScriptTimeOut = 300
Set theForm = Server.CreateObject("ABCUpload4.XForm")
theForm.Overwrite = True
theForm.MaxUploadSize = 8000000  '8M 업로드 가능
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
theForm.AbsolutePath = True
Dim fileName,fileSize



Function GetUniqueName(strFileName, DirectoryPath)
    Dim strName, strExt
    '확장자가 없는 경우를 처리
    if InstrRev(strFileName, ".") = 0 then
        Response.write ""
        Response.end
    End if
    strName = Mid(strFileName, 1, InstrRev(strFileName, ".") - 1)
    strExt = Mid(strFileName, InstrRev(strFileName, ".") + 1)

    'asp파일 업로드 불가
    if strExt = "asa" or strExt = "asp" or strExt = "aspx" or strExt = "inc" or strExt = "bak" or strExt = "php" or strExt = "html" or strExt = "htm" then
        Response.write ""
        Response.end
    End if

    Dim bExist : bExist = True
    Dim strFileWholePath : strFileWholePath = DirectoryPath & "\" & strName & "." & strExt
    Dim countFileName : countFileName = 0

    Do While bExist
        If (fso.FileExists(strFileWholePath)) Then
            countFileName = countFileName + 1
            strFileName = strName & "(" & countFileName & ")." & strExt
            strFileWholePath = DirectoryPath & "\" & strFileName
        Else
            bExist = False
        End If
    Loop
    GetUniqueName = strFileWholePath
End Function




Sub Exec_fileUp(newFile,deleteFile,deleteFilesize,DirectoryPath,num)
    Set theField = newFile(num+1)
    If theField.FileExists Then           '만일 파일업을 했으면...
        strFileName = theField.SafeFileName       '파일 명
        strFileSize = theField.Length          '파일 사이즈

        '파일명을 정한다.
        strExt = Mid(strFileName, InstrRev(strFileName, ".") + 1)
        strName = Date() & Hour(time) & Minute(time) & Second(time)
        strName = Replace(strName,"-","")
        strFileName = strName & "." & strExt

        if theField.Length > 8000000 then
            Response.Write ""
            Response.end
        Else
            if Len(deleteFile) > 0 then         '삭제 화일이 있을경우..              
                delfile = DirectoryPath & "\" & deleteFile                  
                If (fso.FileExists(delfile)) Then
                    fso.DeleteFile(delfile)         '파일을 지운다..
                End if
            End if
            strFileWholePath = GetUniqueName(strFileName, DirectoryPath)  '적합한 파일인지 체크한다.
            theField.Save strFileWholePath        '파일을 저장한다.
        End if
        fileName = strFileName
        fileSize  = strFileSize
    Else
        fileName = deleteFile
        fileSize  = deleteFilesize
    End If
End Sub



'파일 업로드, 업로드 폼이 추가 되면 아래 문장만 추가하면 된다. 물론 파일명은 수정해 줘야 한다.
CALL Exec_fileUp(theForm.item("fileUpload"),"","",DirectoryPath,0)

위 CALL 문장은 파일을 업로드 하는데 사용을 하면 되고,
수정을 할 경우에는.. 아래 문장을 사용하면 된다.
사용할 경우 삭제할 파일명과 사이즈를 먼저 구한 후에 실행을 해야 한다.

<%
'파일 업로드 및 삭제
CALL Exec_fileUp(theForm.item("fileUpload"),DelfileUpLoad,DelfileSize,DirectoryPath,0)
%> 

파일을 다운로드 받을 경우, Stream 을 이용해서 다운을 받는다.
<%
'파일 이름
FileName  = Request("FileName")
    Response.ContentType = "application/unknown"    'ContentType 를 선언합니다.
    Response.AddHeader "Content-Disposition","attachment; filename=" & FileName  '헤더값이 첨부파일을 선언
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = 1
    objStream.LoadFromFile Server.MapPath("\admin\ad\UpLoad") & "\" & FileName  '절대경로
    download = objStream.Read
    Response.BinaryWrite download   '이게 보통 Response.Redirect 로 파일로 연결시켜주는 부분을 대신하여 사용된 것입니다.
    Set objstream = nothing
%>

'ASP' 카테고리의 다른 글

asp 노캐쉬  (0) 2013.10.29
엑셀전환시 <br>태그  (0) 2013.10.28
폴더검색 fso  (0) 2013.10.24
asp 모든폼 갖고오기  (0) 2013.10.24
Dext sumnail 새창으로 메일 보기  (0) 2013.10.24
Posted by 초보용
,

폴더검색 fso

ASP 2013. 10. 24. 12:27

'파일/폴더 관련 변수
Dim fso, folders, SubFolders, folderPath, files, file

'파일객체 인스턴스 생성
Set fso = Server.CreateObject("Scripting.FileSystemObject")

'경로 설정(Server.MapPath:해당폴더의 물리적 경로 반환)
folderPath = Server.MapPath(CK_FD_SM2)

 

'해당 폴더가 있다면
If fso.FolderExists(folderPath) Then
      '해당 폴더 객체를 가져온다.
      Set folders = fso.GetFolder(folderPath)
 
      '해당 폴더 내 다른 폴더가 있는지 검사
      Set SubFolders = folders.SubFolders    

      '해당 폴더 내 다른 폴더가 있다면..
      If SubFolders.Count <> 0 Then
            Response.Write "해당 폴더내에 있는 폴더 수: "& folders.Count &"<br>"
           '해당 폴더 내 다른 폴더가 없다면..
      Else
            Response.Write "해당 폴더내에 다른 폴더가 없습니다.<br>"
      End If

 

      '해당 폴더 내 파일 목록 받아오기
      Set files = folders.Files
      '해당 폴더 내 파일이 있다면...
      If files.Count <>0 then
            Response.Write "<br>해당 폴더 내에 있는 파일 수: "& files.Count & "<br>"
 
            i=1
            '해당 폴더 내 파일 목록 출력
            For Each file In files  
                  Response.Write i&". "&file.name&" ("&file.type&")<br>"
                  i=i+1
            Next

      '해당 폴더 내 파일이 없다면..
      Else
            Response.Write "해당 폴더 내 파일이 없습니다.<br>"
      End If  

 
     Set files = Nothing
    

     Set SubFolders = Nothing
     Set folders = nothing
'해당 폴더가 없다면
Else
      Response.Write "해당 폴더가 없습니다.<br>"
End If

Set fso = nothing

'ASP' 카테고리의 다른 글

엑셀전환시 <br>태그  (0) 2013.10.28
ABCUpload 이용해서 파일 업로드 및 다운로드  (0) 2013.10.26
asp 모든폼 갖고오기  (0) 2013.10.24
Dext sumnail 새창으로 메일 보기  (0) 2013.10.24
FSO 객체(FileSystemObject)  (0) 2013.10.24
Posted by 초보용
,

asp 모든폼 갖고오기

ASP 2013. 10. 24. 12:26

  <html>
<head><title>Checkdata</title></head>

<body bgcolor="#ffffff"><p>
<p>
<table border="0" cellpadding="0" cellspacing="1" width="750" bgcolor="#DDDDDD">
<tr bgcolor="#F6F6F6"><td colspan="2" height="30">
<p align="center"><font size="2" color="#006FFF"><b>Querystring으로 넘어온 것
</b></font></td></tr>


<%
For each item in Request.QueryString
for i = 1 to Request.QueryString(item).Count
%>
<tr bgcolor="#FFFFFF">
<td width= "300" height= "25"><font face= "돋움"size="2"> Request("<%=item%>")</font></td>
<td width= "450" height= "25"><font face= "돋움"size="2"> <%=Request.QueryString(item)(i)%></font>
</td></tr>
<%
next
next
%>
</table><p>

<table border="0" cellpadding="0" cellspacing="1" width="750" bgcolor="#DDDDDD">
<tr bgcolor="#F6F6F6"><td colspan="2" height="30">
<p align="center"><font size="2" face="돋움"color= "#006FFF"><b>Form으로 넘어온 것</b></font></td></tr>


<%
i=0
For each item in Request.Form
for i = 1 to Request.Form(item).Count
%>
<tr bgcolor="#FFFFFF">
<td width= "300"height= "25"><font face= "돋움"size="2"> Request.form("<%=item%>")</font></td>
<td width= "450"height= "25"><font face= "돋움"size="2"> <%=Request.form(item)(i)%></font></td>
</tr>
<%
next
next
%>
</table>
</body>
</html>

 

'ASP' 카테고리의 다른 글

ABCUpload 이용해서 파일 업로드 및 다운로드  (0) 2013.10.26
폴더검색 fso  (0) 2013.10.24
Dext sumnail 새창으로 메일 보기  (0) 2013.10.24
FSO 객체(FileSystemObject)  (0) 2013.10.24
새창 프린트 새창으로 메일 보기  (0) 2013.10.24
Posted by 초보용
,

set objImage =server.CreateObject("DEXT.ImageProc")
   if true = objImage.SetSourceFile(Server.MapPath("/upload/"& Board_Table_NM& "/"& Board_Table_NM& "_Gallery") & "/" & File_NM) Then
     If objImage.ImageWidth >= objImage.ImageHeight Then
      If objImage.ImageHeight < Thumbnail_Height Then
       Thumbnail_Width = objImage.ImageWidth
       Thumbnail_Height = objImage.ImageHeight
      Else
       Thumbnail_Width = (objImage.ImageWidth*Thumbnail_Height)/objImage.ImageHeight
      End If
     Else
      If objImage.ImageWidth < Thumbnail_Width Then
       Thumbnail_Height = objImage.ImageHeight
       Thumbnail_Width = objImage.ImageWidth
      Else
       Thumbnail_Height = (objImage.ImageHeight*Thumbnail_Width)/objImage.ImageWidth
      End If
      
      If objImage.ImageHeight < Thumbnail_Height Then
       Thumbnail_Height =objImage.ImageHeight
       Thumbnail_Width = objImage.ImageWidth
      Else
       Thumbnail_Height = 130
       Thumbnail_Width = (objImage.ImageWidth*Thumbnail_Height)/objImage.ImageHeight
      End If
     End If
    ThumbnailPath = Server.MapPath("/upload/"& Board_Table_NM& "/"& Board_Table_NM& "_Gallery") & "/" & File_NM_WithoutExt  & "_Thumb.jpg"
    Thumbnail = objImage.SaveasThumbnail(ThumbnailPath, Thumbnail_Width, Thumbnail_Height, false)

   End If
   Set objImage = Nothing

'ASP' 카테고리의 다른 글

폴더검색 fso  (0) 2013.10.24
asp 모든폼 갖고오기  (0) 2013.10.24
FSO 객체(FileSystemObject)  (0) 2013.10.24
새창 프린트 새창으로 메일 보기  (0) 2013.10.24
form encoding 형식 변경  (0) 2013.10.24
Posted by 초보용
,

FSO 객체(FileSystemObject)

ASP 2013. 10. 24. 12:20

서버에 허용된 하드디스크의 드라이브, 폴더, 파일에 대해 관리하는 스크립팅 객체

 

FSO 안에서도 Drive, Folder, File 객체가 있다.

 

Drive 객체

 

Drive 객체의 메서드, 속성

 

메서드

설명

GetDrive(drive명)

선택된 드라이브 객체반환

 

속성

설명

DriveLetter

드라이브 문자 반환

FileSystem

드라이브 파일시스템 형식 반환

TotalSize

드라이브 전체용량 반환

AvailableSpace

드라이브에서 사용가능한 용량 반환

 

 

자기 자신의 하드디스크 정보에 관련된 예제입니다..

 

<%

Dim objFSO, objCdrv

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Set objCdrv = objFSO.GetDrive("C:")

%>

<h2><font color="4b0082">FSO객체의 DRIVE객체를 이용한 HDD정보확인</font><hr size="3" noshade color="a52a2a"></h2>

<body>

<center>

<table border="1" width="400" cellpadding="5">

<tr><td align="center">구분</td><td align="center">내용</td></tr>

<tr>

<td width="200">드라이브명</td>

<td><%=objCdrv.DriveLetter%></td>

</tr>

<tr>

<td>파일시스템형식</td>

<td><%=objCdrv.FileSystem%></td>

</tr>

<tr>

<td>전체 디스크 공간</td>

<td><%=Round(objCdrv.TotalSize/1024^3, 1)%> GBytes</td>

</tr>

<tr>

<td>사용가능한 디스크 공간</td>

<td><%=Round(objCdrv.AvailableSpace/1024^3, 1)%> GBytes</td>

</tr>

</table>

</center>

</body>

 

 

 

Folder 객체

 

Folder 객체의 메서드, 속성

 

메서드

설명

GetFolder(경로포함 folder명)

선택된 폴더 객체반환

속성

설명

Name

폴더명 반환

DateCreated

폴더가 만들어진 날짜/시간 반환

Path

폴더의 경로반환

Size

폴더의 크기반환

SubFolders

폴더에 포함된 모든 폴더반환

Files

폴더에 포함된 모든 파일반환

 

 

C:\inetpub\wwwroot 정보에 관련된 예제(이 폴더가 있어야 함)

 

<%Option explicit%>

<%

Dim objFSO, objDir, objSubdir

 

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Set objDir = objFSO.GetFolder("C:\inetpub\wwwroot")

%>

<h2>

<font color="4b0082">FSO객체의 Folder객체를 이용한 디렉터리정보확인</font>

<hr size="3" noshade color="a52a2a"></h2>

 

<body>

<center>

<table border="0" cellpadding="5">

<tr><td>폴더명 : <%=objDir.Name%></td></tr>

<tr><td>생성일 : <%=objDir.DateCreated%></td></tr>

<tr><td>폴더경로 : <%=objDir.Path%></td></tr>

<tr><td>폴더크기 : <%=objDir.Size%> Bytes</td></tr>

<tr><td>&nbsp;</td></tr>

</table>

 

<table border="0" width="400" cellpadding="5">

<tr><td align="center">하위폴더목록</td><td align="center">폴더의 파일목록</td></tr>

<tr><td align="center" colspan="2"><b>------------------------------------------</b></td></tr>

<tr>

<td valign="top">

<table>

<%

For Each objSubdir In objDir.SubFolders

Response.write "<tr><td style='padding-left:30px'>"

Response.write objSubdir.Name

Response.write "</td></tr>"

Next

%>

</table>

</td>

<td>

<table>

<%

For Each objSubdir In objDir.Files

Response.write "<tr><td style='padding-left:30px'>"

Response.write objSubdir.Name

Response.write "</td></tr>"

Next

%>

</table>

</td>

</tr>

</table>

</center>

</body>

 

 

File 객체

 

File 객체의 메서드, 속성

 

메서드

설명

GetFile(경로포함 file명)

파일 객체반환

FileExists(경로포함 file명)

파일 존재 여부를 True, False로 반환

DeleteFile(경로포함 file명)

파일 삭제

CreateTextFile(경로포함 file명, over)

텍스트파일 생성, over - true : 겹쳐쓰기가능, false : 읽기전용

OpenTextFile(경로포함 file명, io)

텍스트파일 열기, io - 1 : 읽기, 2 : 쓰기, 8 : 덧붙이기

 

cf. 파일을 생성하거나 수정, 삭제할 경우에는 IIS의 웹디렉터리에서 쓰기 권한을 설정해야 하며, 해당 폴더에서 수정 및 쓰기 권한을 설정해 주어야 한다.

 

속성

설명

Name

파일명 반환

Size

파일의 크기반환

Type

파일의 형식반환

DateCreated

파일이 만들어진 날짜/시간 반환

DateLastModified

파일이 마지막으로 수정된 날짜/시간 반환

 

C:\inetpub\wwwroot\iisstart.htm 파일 정보에 관련된 예제

 

<%

Dim objFSO, objFile

 

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.GetFile("C:\inetpub\wwwroot\iisstart.htm")

%>

<h2><font color="4b0082">FSO객체의 File객체를 이용한 디렉터리정보확인</font>

<hr size="3" noshade color="a52a2a"></h2>

 

<body>

<center>

<table border="1" width="800" cellpadding="5">

<tr>

<td align="center">파일명</td>

<td align="center">파일크기</td>

<td align="center">파일종류</td>

<td align="center">만든날짜</td>

<td align="center">수정한날짜</td>

</tr>

<tr>

<td align="center"><%=objFile.Name%></td>

<td align="center"><%=objFile.Size%> Byte</td>

<td align="center"><%=objFile.Type%></td>

<td align="center"><%=objFile.DateCreated%></td>

<td align="center"><%=objFile.DateLastModified%></td>

</tr>

</table>

</center>

</body>

 

 

File객체를 이용할때 '사용 권한이 없습니다' 라는 에러메세지 뜰 때!!

 

폴더에 오른쪽 버튼 클릭 후 -> 공유 및 보안-> 보안 탭 선택하고->EveryOne계정 클릭후 밑에 모든 권한 체크!!

 

 

'ASP' 카테고리의 다른 글

폴더검색 fso  (0) 2013.10.24
asp 모든폼 갖고오기  (0) 2013.10.24
Dext sumnail 새창으로 메일 보기  (0) 2013.10.24
새창 프린트 새창으로 메일 보기  (0) 2013.10.24
form encoding 형식 변경  (0) 2013.10.24
Posted by 초보용
,

//새로운 윈도우를 열면서 호출창의 특정 아이디를 가진 DIV안의 내용을 윈도우 내용에 포함한 후 프린트

//예) 에서는 bodyprint 안의 내용을 프린트 한다.

 

function BodyPrint() {
  new_window = window.open("","PrintWindow","width=700,height=600,left=10,top=10,scrollbars=yes,resizable=yes");
  //new_window.document.open();
  // 아래 부분에 새창으로 나타날 내용을 html형식에 맞게 만든다.
  
  new_window.document.write("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>")
  new_window.document.write("<html>");
  new_window.document.write("<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>");
  new_window.document.write("<HEAD><title>인쇄하기</title>"); 
  
  
  new_window.document.write("<link href='../css/contents.css' rel='stylesheet' type='text/css'>");
  new_window.document.write("<link href='../css/common.css' rel='stylesheet' type='text/css'>");
  new_window.document.write("<link href='../css/slayout.css' rel='stylesheet' type='text/css'>"); 
  
  new_window.document.write("</HEAD>");
  new_window.document.write("<body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 >");
  new_window.document.write(document.all.bodyprint.innerHTML);
  new_window.document.write("<script>window.print();</script>");
  new_window.document.write("</body>");
  new_window.document.write("</html>");
  // 문서를 닫는다.
  new_window.document.close();
 }

'ASP' 카테고리의 다른 글

폴더검색 fso  (0) 2013.10.24
asp 모든폼 갖고오기  (0) 2013.10.24
Dext sumnail 새창으로 메일 보기  (0) 2013.10.24
FSO 객체(FileSystemObject)  (0) 2013.10.24
form encoding 형식 변경  (0) 2013.10.24
Posted by 초보용
,