ASP ABCUpload4.XForm 다중 파일업로드시 파일명이 증발해버립니다.

ASP ABCUpload4.XForm 다중 파일업로드시 파일명이 증발해버립니다.

QA

ASP ABCUpload4.XForm 다중 파일업로드시 파일명이 증발해버립니다.

본문


<%
'Dim useUTF
Dim sqlStr, goodsIMGName
Session.CodePage = 65001
response.CharSet = "UTF-8"
useUTF = True
exec_mode = request("exec_mode")
w = Request("w")
Server.ScriptTimeOut = 3600
 '파일업로드 기본 설정
 Response.Expires = -10000
 'Server.ScriptTimeOut = 300
 Set theForm = Server.CreateObject("ABCUpload4.XForm")
 theForm.Overwrite = True '같은 파일 있을 때 덮어쓰기 가능으로 설정
 theForm.MaxUploadSize = 8000000  '8M 업로드 가능
 theForm.AbsolutePath = True '절대 경로로 접근
 theForm.Maxuploadsize = 1024*1024*20
 theForm.CodePage = 65001
 Set FSO = Server.CreateObject("Scripting.FileSystemObject")
 
 dim fileName,fileSize
 
 Function GetUniqueName(strFileName, DirectoryPath)
  Dim strName, strExt
  '확장자가 없는 경우를 처리
  if InstrRev(strFileName, ".") = 0 then
   Response.write "<script language='javascript'>"
   Response.Write " alert(""적절한 파일이 아닙니다. \n\n확장자가 있는지 확인해보세요"");"
   Response.Write " history.back();"
   Response.Write "</script>"
   Response.end
  End if
  strName = Mid(strFileName, 1, InstrRev(strFileName, ".") - 1)
  strExt = Mid(strFileName, InstrRev(strFileName, ".") + 1)
  'asp파일 업로드 불가
  if strExt = "asp" or strExt = "asa" or strExt = "inc" or strExt = "bak" then
   Response.write "<script language='javascript'>"
   Response.Write " alert(""적절한 파일이 아닙니다. \n\n다시 올려주세요"");"
   Response.Write " history.back();"
   Response.Write "</script>"
   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
  goodsIMGName = strFileName '최종파일이름0
 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 = Replace(Date(),"-","")  & Right(Session.SessionID,4)
   strFileName = strName & "." & strExt
   
    
    DirectoryPath = Server.MapPath(".") & "\bookstore\"
   
   if theField.Length > 8000000 then
    Response.Write "<script language=javascript>"
    Response.Write " alert(""8M 이상의 사이즈인 파일은 업로드하실 수 없습니다"");"
    Response.Write " history.back();"
    Response.Write "</script>"
    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
   fileUpload = strFileName
   fileSize  = strFileSize
  Else
   fileUpload = deleteFile
   fileSize  = deleteFilesize
  End If
 End Sub
 
 
'파일 업로드, 업로드 폼이 추가되면 아래 문장만 추가한다. 물론 파일명은 수정해야 한다.
CALL Exec_fileUp(theForm.item("bo_image"),"","",DirectoryPath,0)
CALL Exec_fileUp(theForm.item("bo_file1"),"","",DirectoryPath,0)
CALL Exec_fileUp(theForm.item("bo_file2"),"","",DirectoryPath,0)

http://blog.daum.net/thecoolman/3797336​  

 

위 블로그를 통해 파일 업로드할 경우 서버내 저장까지는 성공하였습니다.

insert나 update 문에서 서버내 저장된 파일명을 가지고 와서 저장 시켜줘야 하는데...

goodsIMGName 이라고 할 경우, 3중 하나의 파일명의 이름만 출력이 되고 있습니다.

파일명 3개를 추출해야하는데...

 

생소한 ASP이다 보니...어려움이 많이 있습니다.

ASP 언어로 개발 경험이 있으신 선배 회원님들께 고개숙여 조언을 구해보고자 합니다.

부탁드립니다. 

 

이 질문에 댓글 쓰기 :

답변 1

dim fileUpload
CALL Exec_fileUp(theForm.item("bo_image"),"","",DirectoryPath,0)
file1 = fileUpload
CALL Exec_fileUp(theForm.item("bo_file1"),"","",DirectoryPath,0)
file2 = fileUpload
CALL Exec_fileUp(theForm.item("bo_file2"),"","",DirectoryPath,0)
file3 = fileUpload  

 

해결했네요 ㅠㅠ 

답변을 작성하시기 전에 로그인 해주세요.
전체 55
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT